diff --git a/swagger/definitions/index.yml b/swagger/definitions/index.yml index b822c9415..9e09d3332 100644 --- a/swagger/definitions/index.yml +++ b/swagger/definitions/index.yml @@ -19,6 +19,11 @@ inbox: $ref: ./resource/inbox.yml agent_bot: $ref: ./resource/agent_bot.yml +contact_inboxes: + $ref: ./resource/contact_inboxes.yml +account: + $ref: ./resource/account.yml + # RESPONSE ## contact diff --git a/swagger/definitions/resource/account.yml b/swagger/definitions/resource/account.yml new file mode 100644 index 000000000..789c8451c --- /dev/null +++ b/swagger/definitions/resource/account.yml @@ -0,0 +1,12 @@ +type: object +properties: + id: + type: number + description: Account ID + name: + type: string + description: Name of the account + role: + type: string + enum: ['administrator', 'agent'] + description: The user role in the account diff --git a/swagger/definitions/resource/contact.yml b/swagger/definitions/resource/contact.yml index be407b20b..e2462c08b 100644 --- a/swagger/definitions/resource/contact.yml +++ b/swagger/definitions/resource/contact.yml @@ -15,3 +15,7 @@ properties: additional_attributes: type: object description: The object containing additional attributes related to the contact + contact_inboxes: + type: array + items: + $ref: '#/definitions/contact_inboxes' diff --git a/swagger/definitions/resource/contact_inboxes.yml b/swagger/definitions/resource/contact_inboxes.yml new file mode 100644 index 000000000..a223490ff --- /dev/null +++ b/swagger/definitions/resource/contact_inboxes.yml @@ -0,0 +1,8 @@ +type: object +properties: + source_id: + type: string + description: Contact Inbox Source Id + inbox: + type: object + $ref: '#/definitions/inbox' diff --git a/swagger/definitions/resource/inbox.yml b/swagger/definitions/resource/inbox.yml index 92a57d1a0..bba46ea34 100644 --- a/swagger/definitions/resource/inbox.yml +++ b/swagger/definitions/resource/inbox.yml @@ -33,6 +33,9 @@ properties: welcome_tagline: type: string description: Welcome tagline to be displayed on the widget - agent_away_message: + greeting_enabled: + type: boolean + description: The flag which shows whether greeting is enabled + greeting_message: type: string - description: A message which will be sent if there is not agent available. This is not available if agentbot is connected + description: A greeting message when the user starts the conversation diff --git a/swagger/definitions/resource/user.yml b/swagger/definitions/resource/user.yml index ecdcbe30a..cbffd7d68 100644 --- a/swagger/definitions/resource/user.yml +++ b/swagger/definitions/resource/user.yml @@ -6,6 +6,10 @@ properties: type: string name: type: string + available_name: + type: string + display_name: + type: string email: type: string account_id: @@ -17,3 +21,7 @@ properties: type: boolean display_name: type: string + accounts: + type: array + items: + $ref: '#/definitions/account' diff --git a/swagger/paths/contact/search.yml b/swagger/paths/contact/search.yml new file mode 100644 index 000000000..ad17fd8e1 --- /dev/null +++ b/swagger/paths/contact/search.yml @@ -0,0 +1,22 @@ +get: + tags: + - Contact + operationId: contactSearch + description: Search the contacts using a search key, currently supports email search + summary: Search Contacts + parameters: + - name: q + in: query + type: string + responses: + 200: + description: Success + schema: + type: object + properties: + payload: + $ref: '#/definitions/contact_list' + 401: + description: Authentication error + schema: + $ref: '#/definitions/bad_request_error' diff --git a/swagger/paths/contact_inboxes/create.yml b/swagger/paths/contact_inboxes/create.yml new file mode 100644 index 000000000..ec28c1a87 --- /dev/null +++ b/swagger/paths/contact_inboxes/create.yml @@ -0,0 +1,21 @@ +post: + tags: + - Contact + operationId: contactInboxCreation + description: Create a contact inbox record for an inbox + summary: Create contact inbox + parameters: + - name: inbox_id + in: params + type: number + responses: + 200: + description: Success + schema: + $ref: '#/definitions/contact_inboxes' + 401: + description: Authentication error + schema: + $ref: '#/definitions/bad_request_error' + 422: + description: Incorrect payload diff --git a/swagger/paths/index.yml b/swagger/paths/index.yml index d1959a21e..d31f88e4a 100644 --- a/swagger/paths/index.yml +++ b/swagger/paths/index.yml @@ -1,5 +1,6 @@ + # Inboxes /accounts/{account_id}/inboxes: $ref: ./inboxes/index.yml @@ -34,7 +35,20 @@ # Contacts /accounts/{account_id}/contacts: $ref: ./contact/list_create.yml + /accounts/{account_id}/contacts/{id}: $ref: ./contact/crud.yml + /accounts/{account_id}/contacts/{id}/conversations: $ref: ./contact/conversations.yml + +/accounts/{account_id}/contacts/search: + $ref: ./contact/search.yml + +/accounts/{account_id}/contacts/{id}/contact_inboxes: + $ref: ./contact_inboxes/create.yml + + +# Profile +/profile: + $ref: ./profile/index.yml diff --git a/swagger/paths/profile/index.yml b/swagger/paths/profile/index.yml new file mode 100644 index 000000000..e20004cac --- /dev/null +++ b/swagger/paths/profile/index.yml @@ -0,0 +1,13 @@ +get: + tags: + - Profile + operationId: fetchProfile + summary: Fetch user profile + description: Get the user profile details + responses: + 200: + description: Success + schema: + $ref: '#/definitions/user' + 401: + description: Unauthorized diff --git a/swagger/swagger.json b/swagger/swagger.json index 8af12d335..cc8b31482 100644 --- a/swagger/swagger.json +++ b/swagger/swagger.json @@ -895,6 +895,97 @@ } } } + }, + "/accounts/{account_id}/contacts/search": { + "get": { + "tags": [ + "Contact" + ], + "operationId": "contactSearch", + "description": "Search the contacts using a search key, currently supports email search", + "summary": "Search Contacts", + "parameters": [ + { + "name": "q", + "in": "query", + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "payload": { + "$ref": "#/definitions/contact_list" + } + } + } + }, + "401": { + "description": "Authentication error", + "schema": { + "$ref": "#/definitions/bad_request_error" + } + } + } + } + }, + "/accounts/{account_id}/contacts/{id}/contact_inboxes": { + "post": { + "tags": [ + "Contact" + ], + "operationId": "contactInboxCreation", + "description": "Create a contact inbox record for an inbox", + "summary": "Create contact inbox", + "parameters": [ + { + "name": "inbox_id", + "in": "params", + "type": "number" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/contact_inboxes" + } + }, + "401": { + "description": "Authentication error", + "schema": { + "$ref": "#/definitions/bad_request_error" + } + }, + "422": { + "description": "Incorrect payload" + } + } + } + }, + "/profile": { + "get": { + "tags": [ + "Profile" + ], + "operationId": "fetchProfile", + "summary": "Fetch user profile", + "description": "Get the user profile details", + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/user" + } + }, + "401": { + "description": "Unauthorized" + } + } + } } }, "definitions": { @@ -957,6 +1048,12 @@ "additional_attributes": { "type": "object", "description": "The object containing additional attributes related to the contact" + }, + "contact_inboxes": { + "type": "array", + "items": { + "$ref": "#/definitions/contact_inboxes" + } } } }, @@ -1072,6 +1169,12 @@ "name": { "type": "string" }, + "available_name": { + "type": "string" + }, + "display_name": { + "type": "string" + }, "email": { "type": "string" }, @@ -1088,8 +1191,11 @@ "confirmed": { "type": "boolean" }, - "display_name": { - "type": "string" + "accounts": { + "type": "array", + "items": { + "$ref": "#/definitions/account" + } } } }, @@ -1140,9 +1246,13 @@ "type": "string", "description": "Welcome tagline to be displayed on the widget" }, - "agent_away_message": { + "greeting_enabled": { + "type": "boolean", + "description": "The flag which shows whether greeting is enabled" + }, + "greeting_message": { "type": "string", - "description": "A message which will be sent if there is not agent available. This is not available if agentbot is connected" + "description": "A greeting message when the user starts the conversation" } } }, @@ -1167,6 +1277,39 @@ } } }, + "contact_inboxes": { + "type": "object", + "properties": { + "source_id": { + "type": "string", + "description": "Contact Inbox Source Id" + }, + "inbox": { + "$ref": "#/definitions/inbox" + } + } + }, + "account": { + "type": "object", + "properties": { + "id": { + "type": "number", + "description": "Account ID" + }, + "name": { + "type": "string", + "description": "Name of the account" + }, + "role": { + "type": "string", + "enum": [ + "administrator", + "agent" + ], + "description": "The user role in the account" + } + } + }, "extended_contact": { "allOf": [ {