Skip to content

Commit

Permalink
Chore: Custom filter api docs updated (#3668)
Browse files Browse the repository at this point in the history
  • Loading branch information
tejaswinichile committed Jan 4, 2022
1 parent 3e8ae38 commit e304ad2
Show file tree
Hide file tree
Showing 4 changed files with 211 additions and 3 deletions.
55 changes: 55 additions & 0 deletions swagger/paths/application/contacts/filter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
tags:
- Contact
operationId: contactFilter
description: Filter contacts with custom filter options and pagination
summary: Contact Filter
security:
- userApiKey: []
- agentBotApiKey: []
parameters:
- name: page
in: query
type: integer
- name: payload
in: body
required: true
schema:
type: array
items:
type: object
properties:
attribute_key:
type: string
description: filter attribute name
filter_operator:
type: string
description: filter operator name
enum: [ equal_to, not_equal_to, contains, does_not_contain ]
values:
type: array
items:
type: string
description: array of the attribute values to filter
query_operator:
type: string
description: query operator name
enum: [ AND, OR ]
example:
- attribute_key: 'name'
filter_operator: 'equal_to'
values: ['en']
query_operator: 'AND'
- attribute_key: 'country_code'
filter_operator: 'equal_to'
values: ['us']
query_operator: nil

responses:
200:
description: Success
schema:
$ref: '#/definitions/contact_list'
400:
description: Bad Request Error
schema:
$ref: '#/definitions/bad_request_error'
12 changes: 12 additions & 0 deletions swagger/paths/application/conversation/filter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ parameters:
filter_operator:
type: string
description: filter operator name
enum: [ equal_to, not_equal_to, contains, does_not_contain ]
values:
type: array
items:
Expand All @@ -32,6 +33,17 @@ parameters:
query_operator:
type: string
description: query operator name
enum: [ AND, OR ]
example:
- attribute_key: 'browser_language'
filter_operator: 'not_eq'
values: ['en']
query_operator: 'AND'
- attribute_key: 'status'
filter_operator: 'eq'
values: ['pending']
query_operator: nil

responses:
200:
description: Success
Expand Down
5 changes: 5 additions & 0 deletions swagger/paths/index.yml
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,11 @@
$ref: ./application/contacts/conversations.yml
/api/v1/accounts/{account_id}/contacts/search:
$ref: ./application/contacts/search.yml
/api/v1/accounts/{account_id}/contacts/filter:
parameters:
- $ref: '#/parameters/account_id'
post:
$ref: ./application/contacts/filter.yml
/api/v1/accounts/{account_id}/contacts/{id}/contact_inboxes:
$ref: ./application/contact_inboxes/create.yml
/api/v1/accounts/{account_id}/contacts/{id}/contactable_inboxes:
Expand Down
142 changes: 139 additions & 3 deletions swagger/swagger.json
Original file line number Diff line number Diff line change
Expand Up @@ -1571,6 +1571,114 @@
}
}
},
"/api/v1/accounts/{account_id}/contacts/filter": {
"parameters": [
{
"$ref": "#/parameters/account_id"
}
],
"post": {
"tags": [
"Contact"
],
"operationId": "contactFilter",
"description": "Filter contacts with custom filter options and pagination",
"summary": "Contact Filter",
"security": [
{
"userApiKey": [

]
},
{
"agentBotApiKey": [

]
}
],
"parameters": [
{
"name": "page",
"in": "query",
"type": "integer"
},
{
"name": "payload",
"in": "body",
"required": true,
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"attribute_key": {
"type": "string",
"description": "filter attribute name"
},
"filter_operator": {
"type": "string",
"description": "filter operator name",
"enum": [
"equal_to",
"not_equal_to",
"contains",
"does_not_contain"
]
},
"values": {
"type": "array",
"items": {
"type": "string"
},
"description": "array of the attribute values to filter"
},
"query_operator": {
"type": "string",
"description": "query operator name",
"enum": [
"AND",
"OR"
]
}
}
},
"example": [
{
"attribute_key": "name",
"filter_operator": "equal_to",
"values": [
"en"
],
"query_operator": "AND"
},
{
"attribute_key": "country_code",
"filter_operator": "equal_to",
"values": [
"us"
],
"query_operator": "nil"
}
]
}
}
],
"responses": {
"200": {
"description": "Success",
"schema": {
"$ref": "#/definitions/contact_list"
}
},
"400": {
"description": "Bad Request Error",
"schema": {
"$ref": "#/definitions/bad_request_error"
}
}
}
}
},
"/api/v1/accounts/{account_id}/contacts/{id}/contact_inboxes": {
"post": {
"tags": [
Expand Down Expand Up @@ -1879,7 +1987,13 @@
},
"filter_operator": {
"type": "string",
"description": "filter operator name"
"description": "filter operator name",
"enum": [
"equal_to",
"not_equal_to",
"contains",
"does_not_contain"
]
},
"values": {
"type": "array",
Expand All @@ -1890,10 +2004,32 @@
},
"query_operator": {
"type": "string",
"description": "query operator name"
"description": "query operator name",
"enum": [
"AND",
"OR"
]
}
}
}
},
"example": [
{
"attribute_key": "browser_language",
"filter_operator": "not_eq",
"values": [
"en"
],
"query_operator": "AND"
},
{
"attribute_key": "status",
"filter_operator": "eq",
"values": [
"pending"
],
"query_operator": "nil"
}
]
}
}
],
Expand Down

0 comments on commit e304ad2

Please sign in to comment.