linagora-rse
Version:
363 lines (260 loc) • 8.62 kB
Markdown
# /api/messages
## GET /api/messages
Get messages from their IDs.
**Query Parameters:**
- ids (Array): Identifiers of the messages to fetch.
**Request Headers:**
- Accept: application/json
**Response Headers:**
- Content-Length: Document size
- Content-Type: application/json
**Response JSON Object:**
An array of messages with all the messages defined in the input query parameters.
If a message is not found from the input ID, the result array will contain an error descriptor.
**Status Codes:**
- 200 OK. At least one message is found.
- 400 Bad Request. Invalid request body or parameters.
- 404 Not Found. All messages was not found.
**Request:**
GET /api/messages?ids[]=53581bb1cca7800000522731&ids[]=53581bb1cca7800000522732&ids[]=123
Accept: application/json
Host: localhost:8080
**Response:**
HTTP/1.1 200 OK
[
{
objectType: "whatsup",
_id: "53581bb1cca7800000522731",
description: "I'm the content !",
creator: 34556456,
timestamps: {
creation: 2354456547
}
},
{
objectType: "whatsup",
_id: "53581bb1cca7800000522732",
description: "I'm another content !",
creator: 345564,
timestamps: {
creation: 23544564564
}
},
{
error: {
status: 404,
message: "Not Found",
details: "The message 123 can not be found"
}
},
]
## GET /api/messages/:id
Get a message from its ID.
**Request URL Parameters:**
- id: Identifier of the message to fetch.
**Request Headers:**
- Accept: application/json
**Response Headers:**
- Content-Length: Document size
- Content-Type: application/json
**Response JSON Object:**
The message object.
**Status Codes:**
- 200 OK
- 400 Bad Request. Invalid request body or parameters.
- 403 Forbidden. You do not have the permission to read message.
- 404 Not Found. The message does not exist.
**Request:**
GET /api/messages/53581bb1cca7800000522731
Accept: application/json
Host: localhost:8080
**Response:**
HTTP/1.1 200 OK
{
objectType: "whatsup",
_id: "53581bb1cca7800000522731",
description: "I'm the content !",
creator: 34556456,
timestamps: {
creation: 2354456547
}
}
## POST /api/messages/{id}/shares
Copy a message from a resource (community, project, ...) to another (or several others) i.e. share a message.
**Parameters:**
- id : Identifier of the message to copy.
**Request Headers:**
- Content-Type: application/json
**Request JSON Object:**
- resource: identify the source community/project of the original message
```
resource: {
objectType: "activitystream", # Type of the resource
id: 123456798, # The id of the resource
}
```
- targets: An array of targets where the message will be copied
```
targets: [{
objectType: "activitystream", # Type of the target
id: "123456798",
}]
```
**Response Headers:**
- Content-Length: Document size
- Content-Type: application/json
**Response JSON Object:**
The id of the new message in the '_id' property.
**Status Codes:**
- 201 Created. With the _id of the new message.
- 400 Bad request. The current request is missing mandatory parameters
- 403 Unauthorized. The current user is not authorized to copy message from the resource or to the specified target(s)
- 404 Not found. The message related to the request parameter id does not exist, or the resource does not exists
- 500 Internal server error: there was a problem.
**Request:**
POST /api/messages/53581bb1cca7800000522731/shares
Content-Type: application/json
Host: localhost:8080
{
"resource": { "objecType": "activitystream", "id": "7fd3e254-394f-46eb-994d-a2ec23e7cf27" },
"targets": [
{"objectType": "activitystream", "id": "976f55e7-b72f-4ac0-afb2-400a85c50951" }
]
}
**Response:**
HTTP/1.1 201 Created
{
_id: '53581bb1cca7800000522852'
}
## POST /api/messages
Post a new message by the currently logged in user.
**Request Headers:**
- Content-Type: application/json
**Request JSON Object:**
- object: the definition of the object
```
object: {
objectType: "whatsup", # Type of the message
content: "whatsup message content", # Content of the message
attachments: [ # Message attachments
{_id: "9829892-9982982-87222-238388", name: "chuck.png", contentType: "image/png", length: 988288},
{_id: "9829892-9982982-87222-238388", name: "bruce.png", contentType: "image/png", length: 67392}
],
parsers: [
{name: "markdown"}
],
data: {
//some data which is specific to the message type
}
}
```
- targets: An array of targets
```
targets: [{
objectType: "activitystream", # Type of the target
id: "urn:linagora.com:activitystream:<activitystream uuid>", # This is an activity stream id
}]
```
**Status Codes:**
- 201 Created. With the _id of the new message.
- 400 Bad request. The current request is missing mandatory parameters
- 403 Unauthorized. The current user is not authorized to post message to the specified target(s)
- 500 Internal server error: there was a problem.
**Request:**
POST /api/messages
Content-Type: application/json
Host: localhost:8080
{
"object": {
"objectType": "whatsup",
"description": "whatsup message content",
"attachments": [
{"_id": "9829892-9982982-87222-238388", "name": "chuck.png", "contentType": "image/png", "length": 988288},
{"_id": "9829892-9982982-87222-238388", "name": "bruce.png", "contentType": "image/png", "length": 67392}
],
"parsers": [
{name: "markdown"}
]
},
"targets": [
{
"objectType": "activitystream",
"id": "<activitystream uuid>"
}
]
}
**Response:**
HTTP/1.1 201 Created
{
_id: '7f281054-e7a6-1547-012f-935d5b88389d'
}
## POST /api/messages with inReplyTo parameter
Post a new comment in reply to a message, by the currently logged in user.
**Request Headers:**
- Content-Type: application/json
**Request JSON Object:**
- object: the definition of the object
```
object: {
objectType: "whatsup", # Type of the message
content: whatsup message content, # Content of the message
}
```
- inReplyTo: the definition of the parent message
```
inReplyTo: {
objectType: "whatsup", # Type of the target
id: "urn:linagora.com:whatsup:<whatsup uuid>", # This is an activity stream id
}
```
**Status Codes:**
- 201 Created. With the _id of the new comment.
- 400 Bad request. The current request is missing mandatory parameters
- 403 Unauthorized. The current user is not authorized to reply to the specified message
- 500 Internal server error: there was a problem.
**Request:**
POST /api/messages
Content-Type: application/json
Host: localhost:8080
{
"object": {
"objectType": "whatsup",
"content": "comment message content"
},
"inReplyTo": {
"objectType": "activitystream",
"id": "urn:linagora:esn:whatsup:<whatsup uuid>"
}
}
**Response:**
HTTP/1.1 201 Created
{
_id: '7f281054-e7a6-1547-012f-935d5b88389d',
parentId: '7f281054-e7a6-1547-012f-935d5b883833'
}
## POST /api/messages/email
Publish a message in rfc822 MIME form.
**Request Headers:**
- Content-Type: message/rfc822
**Query Parameters:**
- id: ID of the target
- objectType: Type of the target
**Request text:**
An email in rfc822 MIME format.
**Status Codes:**
- 201 Created. With the id of the new message.
- 400 Bad request. The current request is missing mandatory parameters
- 500 Internal server error.
**Request:**
POST /api/messages/email?id=7aea8933-0a55-4e34-81ae-ec9812b8f891&objectType=activitystream
Content-Type: message/rfc822
Host: localhost:8080
From: 'Sender Name' <sender@example.com>
To: 'Receiver Name' <receiver@example.com>
Subject: Hello world!
How are you today?
**Response:**
HTTP/1.1 201 Created
{
_id: '7f281054935d5b88389d'
}