summary: "Mark all messages in the chat as read",
operationId: "ChatController.mark_as_read",
parameters: [Operation.parameter(:id, :path, :string, "The ID of the Chat")],
+ requestBody: request_body("Parameters", mark_as_read()),
responses: %{
200 =>
Operation.response(
},
security: [
%{
- "oAuth" => ["write"]
+ "oAuth" => ["write:chats"]
+ }
+ ]
+ }
+ end
+
+ def mark_message_as_read_operation do
+ %Operation{
+ tags: ["chat"],
+ summary: "Mark one message in the chat as read",
+ operationId: "ChatController.mark_message_as_read",
+ parameters: [
+ Operation.parameter(:id, :path, :string, "The ID of the Chat"),
+ Operation.parameter(:message_id, :path, :string, "The ID of the message")
+ ],
+ responses: %{
+ 200 =>
+ Operation.response(
+ "The read ChatMessage",
+ "application/json",
+ ChatMessage
+ )
+ },
+ security: [
+ %{
+ "oAuth" => ["write:chats"]
}
]
}
},
security: [
%{
- "oAuth" => ["write"]
+ "oAuth" => ["write:chats"]
}
]
}
},
security: [
%{
- "oAuth" => ["read"]
+ "oAuth" => ["read:chats"]
}
]
}
"The messages in the chat",
"application/json",
chat_messages_response()
- )
+ ),
+ 404 => Operation.response("Not Found", "application/json", ApiError)
},
security: [
%{
- "oAuth" => ["read"]
+ "oAuth" => ["read:chats"]
}
]
}
"application/json",
ChatMessage
),
- 400 => Operation.response("Bad Request", "application/json", ApiError)
+ 400 => Operation.response("Bad Request", "application/json", ApiError),
+ 422 => Operation.response("MRF Rejection", "application/json", ApiError)
},
security: [
%{
- "oAuth" => ["write"]
+ "oAuth" => ["write:chats"]
}
]
}
},
security: [
%{
- "oAuth" => ["write"]
+ "oAuth" => ["write:chats"]
}
]
}
"content" => "Check this out :firefox:",
"id" => "13",
"chat_id" => "1",
- "actor_id" => "someflakeid"
+ "account_id" => "someflakeid",
+ "unread" => false
},
%{
- "actor_id" => "someflakeid",
+ "account_id" => "someflakeid",
"content" => "Whats' up?",
"id" => "12",
"chat_id" => "1",
"emojis" => [],
- "created_at" => "2020-04-21T15:06:45.000Z"
+ "created_at" => "2020-04-21T15:06:45.000Z",
+ "unread" => false
}
]
}
}
}
end
+
+ def mark_as_read do
+ %Schema{
+ title: "MarkAsReadRequest",
+ description: "POST body for marking a number of chat messages as read",
+ type: :object,
+ required: [:last_read_id],
+ properties: %{
+ last_read_id: %Schema{
+ type: :string,
+ description: "The content of your message."
+ }
+ },
+ example: %{
+ "last_read_id" => "abcdef12456"
+ }
+ }
+ end
end