API Reference
Create a collection
POST /collection
Parameters (json):
- name [string,required] - name of the collection.
Request example:
{
"name": "foobar"
}
Response example:
{
"status": true
}
Create a record
POST /record
Request parameters (json):
- collection [string,required] - name of the collection.
- recipient [string,required] - name of record recipient.
- sender [string,optional] - name of record author.
- thread [string,optional] - additional field for tagging record.
- title [string,optional] - title of record.
- text [string,optional] - text of record.
- image [string,optional] - image of record.
- payload [json,optional] - any JSON-serializable content.
- created_at [datetime,optional] - date of record creation.
Request example:
{
"collection": "foobar",
"recipient": "client1",
"sender": "client2",
"thread": "chat",
"title": "Hello",
"text": "World",
"image": "https://example.com/image.jpg",
"payload": {
"foo": "bar"
}
}
Response parameters (json):
- id [integer] - unique identity of inserted document.
- recipient [string] - name of record recipient.
- sender [string] - name of record author.
- thread [string] - additional field for tagging record.
- title [string] - title of record.
- text [string] - text of record.
- image [string] - image of record.
- payload [json] - any JSON-serializable content.
- created_at [datetime] - date of creation.
Response example:
{
"status": true,
"content": {
"record": {
"id": 1,
"recipient": "client1",
"sender": "client2",
"thread": "chat",
"title": "Hello",
"text": "World",
"image": "https://example.com/image.jpg",
"payload": {
"foo": "bar"
},
"created_at": "2020-10-01 00:00:00"
}
}
}
Get a record
GET /record
Request parameters (json):
- collection [string,required] - name of the collection.
- id [integer,required] - the id of document.
Request example:
{
"collection": "foobar",
"id": 1
}
Response parameters (json):
- id [integer] - unique identity of inserted document.
- recipient [string] - name of record recipient.
- sender [string] - name of record author.
- thread [string] - additional field for tagging record.
- title [string] - title of record.
- text [string] - text of record.
- image [string] - image of record.
- payload [json] - any JSON-serializable content.
- created_at [datetime] - date of creation.
- is_read [boolean] - whether record read or not.
Response example:
{
"status": true,
"content": {
"record": {
"id": 1,
"recipient": "client1",
"sender": "client2",
"thread": "chat",
"title": "Hello",
"text": "World",
"image": "https://example.com/image.jpg",
"payload": {
"foo": "bar"
},
"is_read": false,
"created_at": "2020-10-01 00:00:00"
}
}
}
Delete a record
DELETE /record
Request parameters (json or URL):
- collection [string,required] - name of the collection.
- id [integer,required] - the id of document.
Request example:
{
"collection": "foobar",
"id": 1
}
Response example:
{
"status": true
}
Get records
GET /records
Request parameters (json):
- collection [string,required] - name of the collection.
- recipient [string,required] - name of the recipient.
- sender [string,optional] - name of the sender.
- user [string,optional] - name of the sender or recipient. If user is present, recipient and sender will be ignored.
- thread [string,optional] - name of the thread.
- search [string,optional] - searching string in “title” or “text”.
- id [integer,optional] - the id of document to start from.
- order [string,optional] - type of ordering (“asc” or “desc”). Default is “desc”.
- is_read [boolean,optional] - if true return only read records, if false - only unread, if null - both. Default is “null”.
- limit [integer,optional] - number of records to return.
- offset [integer,optional] - number of records to offset from.
Request example:
{
"collection": "foobar",
"recipient": "client1"
}
Response parameters (json):
- id [integer] - unique identity of inserted document.
- recipient [string] - name of record recipient.
- sender [string] - name of record author.
- thread [string] - additional field for tagging record.
- title [string] - title of record.
- text [string] - text of record.
- image [string] - image of record.
- payload [json] - any JSON-serializable content.
- created_at [datetime] - date of creation.
- is_read [boolean] - whether record read or not.
Response example:
{
"status": true,
"content": {
"records": [
{
"id": 1,
"recipient": "client1",
"sender": "client2",
"thread": "chat",
"title": "Hello",
"text": "World",
"image": "https://example.com/image.jpg",
"payload": {
"foo": "bar"
},
"is_read": false,
"created_at": "2020-10-01 00:00:00"
}
]
}
}
Get records number by filters
GET /records/count
Request parameters (json):
- collection [string,required] - name of the collection.
- recipient [string,required] - name of the recipient.
- sender [string,optional] - name of the sender.
- user [string,optional] - name of the sender or recipient. If user is present, recipient and sender will be ignored.
- thread [string,optional] - name of the thread.
- search [string,optional] - searching string in “title” or “text”.
- id [integer,optional] - the id of document to start from.
- is_read [boolean,optional] - if true return only read records, if false - only unread, if null - both. Default is “null”.
Request example:
{
"collection": "foobar",
"recipient": "client1"
}
Response parameters (json):
- records [integer] - number fo found records.
Response example:
{
"status": true,
"content": {
"records": 5
}
}
Update records
PATCH /records
Request parameters (json):
- collection [string,required] - name of the collection.
- where [object,required] - parameter object for WHERE.
- where.recipient [string,optional] - name of the recipient.
- where.sender [string,optional] - name of the sender.
- where.thread [string,optional] - name of the thread.
- where.user [string,optional] - name of the sender or recipient.
- set [object,required] - parameter object for SET.
- set.recipient [string, optional] - name of record recipient.
- set.sender [string, optional] - name of record author.
- set.thread [string, optional] - additional field for tagging record.
- set.user [string, optional] - name of the sender or recipient.
- set.title [string, optional] - title of record.
- set.text [string, optional] - text of record.
- set.image [string, optional] - image of record.
- set.payload [object, optional] - any JSON-serializable content.
Request example:
{
"collection": "foobar",
"where": {
"thread": "foo"
},
"set": {
"sender": "bar",
"payload": {
"foo": "bar"
}
}
}
Response parameters (json):
- status [boolean] - result status.
Response example:
{
"status": true
}
Read a record
POST /record/read
Request parameters (json):
- id [integer,required] - id of the record.
- collection [string,required] - name of the collection.
Request example:
{
"collection": "foobar",
"id": 1
}
Response example:
{
"status": true
}
Unread a record
POST /record/unread
Request parameters (json):
- id [integer,required] - id of the record.
- collection [string,required] - name of the collection.
Request example:
{
"collection": "foobar",
"id": 1
}
Response example:
{
"status": true
}
Read all records of recipient
POST /records/read
Request parameters (json):
- recipient [string,required] - name of recipient.
- collection [string,required] - name of the collection.
Request example:
{
"collection": "foobar",
"recipient": "client1"
}
Response example:
{
"status": true
}
Delete all records of recipient
DELETE /records
Request parameters (json):
- recipient [string,required] - name of recipient.
- collection [string,required] - name of the collection.
Request example:
{
"collection": "foobar",
"recipient": "client1"
}
Response example:
{
"status": true
}