78 lines
2.6 KiB
Elixir
78 lines
2.6 KiB
Elixir
# Pleroma: A lightweight social networking server
|
|
# Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
|
|
# SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
defmodule Pleroma.Web.ApiSpec.Schemas.ChatMessage do
|
|
alias OpenApiSpex.Schema
|
|
alias Pleroma.Web.ApiSpec.Schemas.Emoji
|
|
|
|
require OpenApiSpex
|
|
|
|
OpenApiSpex.schema(%{
|
|
title: "ChatMessage",
|
|
description: "Response schema for a ChatMessage",
|
|
nullable: true,
|
|
type: :object,
|
|
properties: %{
|
|
id: %Schema{type: :string},
|
|
account_id: %Schema{type: :string, description: "The Mastodon API id of the actor"},
|
|
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},
|
|
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."}
|
|
},
|
|
example: %{
|
|
"account_id" => "someflakeid",
|
|
"chat_id" => "1",
|
|
"content" => "hey you again",
|
|
"created_at" => "2020-04-21T15:06:45.000Z",
|
|
"card" => nil,
|
|
"emojis" => [
|
|
%{
|
|
"static_url" => "https://dontbulling.me/emoji/Firefox.gif",
|
|
"visible_in_picker" => false,
|
|
"shortcode" => "firefox",
|
|
"url" => "https://dontbulling.me/emoji/Firefox.gif"
|
|
}
|
|
],
|
|
"id" => "14",
|
|
"attachment" => nil,
|
|
"unread" => false
|
|
}
|
|
})
|
|
end
|