Pleroma/lib/pleroma/web/api_spec/schemas/chat_message.ex

78 lines
2.6 KiB
Elixir
Raw Normal View History

2020-04-21 17:51:06 +02:00
# Pleroma: A lightweight social networking server
# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
2020-04-21 17:51:06 +02:00
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Web.ApiSpec.Schemas.ChatMessage do
2020-04-21 17:51:06 +02:00
alias OpenApiSpex.Schema
alias Pleroma.Web.ApiSpec.Schemas.Emoji
2020-04-21 17:51:06 +02:00
require OpenApiSpex
OpenApiSpex.schema(%{
title: "ChatMessage",
2020-04-21 17:51:06 +02:00
description: "Response schema for a ChatMessage",
2020-05-10 13:26:14 +02:00
nullable: true,
2020-04-21 17:51:06 +02:00
type: :object,
properties: %{
id: %Schema{type: :string},
account_id: %Schema{type: :string, description: "The Mastodon API id of the actor"},
2020-04-21 17:51:06 +02:00
chat_id: %Schema{type: :string},
content: %Schema{type: :string, nullable: true},
created_at: %Schema{type: :string, format: :"date-time"},
emojis: %Schema{type: :array, items: Emoji},
2020-07-30 19:57:45 +02:00
attachment: %Schema{type: :object, nullable: true},
card: %Schema{
type: :object,
nullable: true,
description: "Preview card for links included within status content",
required: [:url, :title, :description, :type],
properties: %{
type: %Schema{
type: :string,
enum: ["link", "photo", "video", "rich"],
description: "The type of the preview card"
},
provider_name: %Schema{
type: :string,
nullable: true,
description: "The provider of the original resource"
},
provider_url: %Schema{
type: :string,
format: :uri,
description: "A link to the provider of the original resource"
},
url: %Schema{type: :string, format: :uri, description: "Location of linked resource"},
image: %Schema{
type: :string,
nullable: true,
format: :uri,
description: "Preview thumbnail"
},
title: %Schema{type: :string, description: "Title of linked resource"},
description: %Schema{type: :string, description: "Description of preview"}
}
},
unread: %Schema{type: :boolean, description: "Whether a message has been marked as read."}
2020-04-21 17:51:06 +02:00
},
example: %{
"account_id" => "someflakeid",
2020-04-21 17:51:06 +02:00
"chat_id" => "1",
"content" => "hey you again",
"created_at" => "2020-04-21T15:06:45.000Z",
2020-07-30 19:57:45 +02:00
"card" => nil,
2020-04-21 17:51:06 +02:00
"emojis" => [
%{
"static_url" => "https://dontbulling.me/emoji/Firefox.gif",
"visible_in_picker" => false,
"shortcode" => "firefox",
"url" => "https://dontbulling.me/emoji/Firefox.gif"
}
],
2020-05-06 16:12:36 +02:00
"id" => "14",
"attachment" => nil,
"unread" => false
2020-04-21 17:51:06 +02:00
}
})
end