From 23b002edc4e4598a2bb2a14eeb9058b6a4ffa7d2 Mon Sep 17 00:00:00 2001 From: Roland Osborne Date: Mon, 7 Mar 2022 15:03:24 -0800 Subject: [PATCH] updated api to support browser app --- doc/api.oa3 | 173 +++++++++++++++++------------ net/server/internal/api_account.go | 20 ++-- net/server/internal/databag.db | Bin 0 -> 331776 bytes net/server/internal/modelUtil.go | 14 +-- net/server/internal/models.go | 27 ++++- net/server/internal/routers.go | 14 --- 6 files changed, 140 insertions(+), 108 deletions(-) create mode 100644 net/server/internal/databag.db diff --git a/doc/api.oa3 b/doc/api.oa3 index 96c0b99d..fd4af4d5 100644 --- a/doc/api.oa3 +++ b/doc/api.oa3 @@ -267,45 +267,6 @@ paths: type: string format: binary - /account/public/status: - get: - tags: - - account - description: Check if a public account can be created. - operationId: get-public-status - responses: - '200': - description: success - content: - application/json: - schema: - type: boolean - '500': - description: internal server error - - /account/public/profile: - post: - tags: - - account - description: Add a new account. Basic auth will be used for the accounts username and password. Access granted to when public account available. - operationId: add-public-account - security: - - bearerAuth: [] - - basicCredentials: [] - responses: - '201': - description: successful operation - content: - application/json: - schema: - $ref: '#/components/schemas/Profile' - '400': - description: invalid handle or password - '406': - description: accounts not available - '500': - description: internal server error - /account/available: get: tags: @@ -333,6 +294,36 @@ paths: '500': description: internal server error + /account/listing: + get: + tags: + - account + description: Get profile of searchable accounts. Endpoint is publically accessible. + operationId: get-account-listing + security: + - bearerAuth: [] + parameters: + - name: guid + in: query + description: filter for specified guid + required: false + schema: + type: string + responses: + '200': + description: success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Profile' + + '401': + description: permission denied + '500': + description: internal server error + /account/token: get: tags: @@ -353,26 +344,6 @@ paths: '500': description: internal server error - /account/did: - get: - tags: - - account - description: Retrieve account DIDkey. Authorized to account username and password. - operationId: get-account-did - security: - - basicAuth: [] - responses: - '200': - description: successful operation - content: - application/json: - schema: - type: string - '401': - description: authentication error - '500': - description: internal server error - /account/status: get: tags: @@ -393,6 +364,29 @@ paths: '500': description: internal server error + /account/searchable: + put: + tags: + - account + description: Set whether account is publicly listed. + operationId: set-account-seachable + security: + - basicAuth: [] + responses: + '201': + description: success + '401': + description: permission denied + '405': + description: failed to confirm + '500': + description: internal server error + requestBody: + content: + application/json: + schema: + type: boolean + /account/profile: get: tags: @@ -553,6 +547,11 @@ paths: description: failed to confirm '500': description: internal server error + requestBody: + content: + application/json: + schema: + type: string /account/apps: get: @@ -1931,7 +1930,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Subject' + $ref: '#/components/schemas/ChannelParams' /content/channels/{channelId}: get: @@ -2964,9 +2963,6 @@ components: properties: domain: type: string - publicLimit: - type: integer - format: int64 accountStorage: type: integer format: int64 @@ -2978,6 +2974,7 @@ components: - storageUsed - storageAvailable - forwardingAddress + - searchable properties: disabled: type: boolean @@ -2989,6 +2986,8 @@ components: format: int64 forwardingAddress: type: string + searchable: + type: boolean Profile: type: object @@ -3196,7 +3195,25 @@ components: updated: type: integer format: int64 - + + ChannelParams: + type: object + required: + - subject + - groups + - cards + properties: + subject: + $ref: '#/components/schemas/Subject' + groups: + type: array + items: + type: string + cards: + type: array + items: + type: string + Channel: type: object required: @@ -3245,23 +3262,36 @@ components: updated: type: integer format: int64 - groups: - $ref: '#/components/schemas/ChannelGroups' - cards: - type: array - items: - type: string + contacts: + $ref: '#/components/schemas/ChannelContacts' + members: + $ref: '#/components/schemas/ChannelMembers' - ChannelGroups: + ChannelContacts: type: object required: - groups + - cards properties: groups: type: array items: type: string + cards: + type: array + items: + type: string + ChannelMembers: + type: object + required: + - members + properties: + members: + type: array + items: + type: string + Topic: type: object required: @@ -3595,3 +3625,4 @@ components: + diff --git a/net/server/internal/api_account.go b/net/server/internal/api_account.go index 98b6e351..a5d1c76a 100644 --- a/net/server/internal/api_account.go +++ b/net/server/internal/api_account.go @@ -18,11 +18,6 @@ func AddAccountAuthentication(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusOK) } -func AddPublicAccount(w http.ResponseWriter, r *http.Request) { - w.Header().Set("Content-Type", "application/json; charset=UTF-8") - w.WriteHeader(http.StatusOK) -} - func GetAccountApps(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json; charset=UTF-8") w.WriteHeader(http.StatusOK) @@ -53,11 +48,6 @@ func GetAccountStatus(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusOK) } -func GetPublicStatus(w http.ResponseWriter, r *http.Request) { - w.Header().Set("Content-Type", "application/json; charset=UTF-8") - w.WriteHeader(http.StatusOK) -} - func RemoveAccount(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json; charset=UTF-8") w.WriteHeader(http.StatusOK) @@ -83,3 +73,13 @@ func SetAccountNode(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusOK) } +func GetAccountListing(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json; charset=UTF-8") + w.WriteHeader(http.StatusOK) +} + +func SetAccountSeachable(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json; charset=UTF-8") + w.WriteHeader(http.StatusOK) +} + diff --git a/net/server/internal/databag.db b/net/server/internal/databag.db new file mode 100644 index 0000000000000000000000000000000000000000..1eb15c01374f6323afc57704f2f8c7592c6d2183 GIT binary patch literal 331776 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 DY7nb< literal 0 HcmV?d00001 diff --git a/net/server/internal/modelUtil.go b/net/server/internal/modelUtil.go index 6e90ade9..4416cf38 100644 --- a/net/server/internal/modelUtil.go +++ b/net/server/internal/modelUtil.go @@ -173,22 +173,17 @@ func getChannelModel(slot *store.ChannelSlot, showData bool, showList bool) *Cha } } - var channelGroups *IdList + var contacts *ChannelContacts if showList { var groups []string; for _, group := range slot.Channel.Groups { groups = append(groups, group.GroupSlot.GroupSlotId) } - channelGroups = &IdList{ Ids: groups } - } - - var channelCards *IdList - if showList { var cards []string; for _, card := range slot.Channel.Cards { cards = append(cards, card.CardSlot.CardSlotId) } - channelCards = &IdList{ Ids: cards } + contacts = &ChannelContacts{ Groups: groups, Cards: cards } } members := []string{} @@ -207,9 +202,8 @@ func getChannelModel(slot *store.ChannelSlot, showData bool, showList bool) *Cha Data: slot.Channel.Data, Created: slot.Channel.Created, Updated: slot.Channel.Updated, - Groups: channelGroups, - Cards: channelCards, - Members: members, + Contacts: contacts, + Members: &ChannelMembers{ members }, }, }, } diff --git a/net/server/internal/models.go b/net/server/internal/models.go index 0983b543..81b299c9 100644 --- a/net/server/internal/models.go +++ b/net/server/internal/models.go @@ -22,6 +22,8 @@ type AccountStatus struct { StorageAvailable float64 `json:"storageAvailable"` ForwardingAddress string `json:"forwardingAddress"` + + Searchable bool `json:"searchable"` } type Announce struct { @@ -145,6 +147,13 @@ type CardProfile struct { Node string `json:"node"` } +type ChannelContacts struct { + + Groups []string `json:"groups"` + + Cards []string `json:"cards"` +} + type Channel struct { Id string `json:"id"` @@ -173,11 +182,23 @@ type ChannelDetail struct { Updated int64 `json:"updated"` - Groups *IdList `json:"groups,omitempty"` + Contacts *ChannelContacts `json:"contacts,omitempty"` - Cards *IdList `json:"cards,omitempty"` + Members *ChannelMembers `json:"members,omitempty"` +} - Members []string `json:"members"` +type ChannelMembers struct { + + Members []string `json:"members,omitempty"` +} + +type ChannelParams struct { + + Subject *Subject `json:"subject"` + + Groups []string `json:"groups"` + + Cards []string `json:"cards"` } type Claim struct { diff --git a/net/server/internal/routers.go b/net/server/internal/routers.go index 832479b4..4cd081ed 100644 --- a/net/server/internal/routers.go +++ b/net/server/internal/routers.go @@ -82,13 +82,6 @@ var routes = Routes{ AddAccountAuthentication, }, - Route{ - "AddPublicAccount", - strings.ToUpper("Post"), - "/account/public/profile", - AddPublicAccount, - }, - Route{ "GetAccountApps", strings.ToUpper("Get"), @@ -145,13 +138,6 @@ var routes = Routes{ GetAccountUsername, }, - Route{ - "GetPublicStatus", - strings.ToUpper("Get"), - "/account/public/status", - GetPublicStatus, - }, - Route{ "RemoveAccount", strings.ToUpper("Delete"),