"Statuses the user has favourited. Please note that you have to use the link headers to paginate this. You can not build the query parameters yourself.",
operationId:"StatusController.favourites",
parameters:pagination_params(),
security:[%{"oAuth"=>["read:favourites"]}],
responses:%{
200=>Operation.response("Array of Statuses","application/json",array_of_statuses())
}
}
end
defbookmarks_operationdo
%Operation{
tags:["Timelines"],
summary:"Bookmarked statuses",
description:"Statuses the user has bookmarked",
operationId:"StatusController.bookmarks",
parameters:[
Operation.parameter(
:folder_id,
:query,
FlakeID.schema(),
"If provided, only display bookmarks from given folder"
)
|pagination_params()
],
security:[%{"oAuth"=>["read:bookmarks"]}],
responses:%{
200=>Operation.response("Array of Statuses","application/json",array_of_statuses())
"Text content of the status. If `media_ids` is provided, this becomes optional. Attaching a `poll` is optional while `status` is provided."
},
media_ids:%Schema{
nullable:true,
type::array,
items:%Schema{type::string},
description:"Array of Attachment ids to be attached as media."
},
poll:poll_params(),
in_reply_to_id:%Schema{
nullable:true,
allOf:[FlakeID],
description:"ID of the status being replied to, if status is a reply"
},
sensitive:%Schema{
allOf:[BooleanLike],
nullable:true,
description:"Mark status and attached media as sensitive?"
},
spoiler_text:%Schema{
type::string,
nullable:true,
description:
"Text to be shown as a warning or subject before the actual content. Statuses are generally collapsed behind this field."
},
scheduled_at:%Schema{
type::string,
format::"date-time",
nullable:true,
description:
"ISO 8601 Datetime at which to schedule a status. Providing this parameter will cause ScheduledStatus to be returned instead of Status. Must be at least 5 minutes in the future."
},
language:%Schema{
type::string,
nullable:true,
description:"ISO 639 language code for this status."
},
# Pleroma-specific properties:
preview:%Schema{
allOf:[BooleanLike],
nullable:true,
description:
"If set to `true` the post won't be actually posted, but the status entity would still be rendered back. This could be useful for previewing rich text/custom emoji, for example"
},
content_type:%Schema{
type::string,
nullable:true,
description:
"The MIME type of the status, it is transformed into HTML by the backend. You can get the list of the supported MIME types with the nodeinfo endpoint."
},
to:%Schema{
type::array,
nullable:true,
items:%Schema{type::string},
description:
"A list of nicknames (like `lain@soykaf.club` or `lain` on the local server) that will be used to determine who is going to be addressed by this post. Using this will disable the implicit addressing by mentioned names in the `status` body, only the people in the `to` list will be addressed. The normal rules for for post visibility are not affected by this and will still apply"
"Visibility of the posted status. Besides standard MastoAPI values (`direct`, `private`, `unlisted` or `public`) it can be used to address a List by setting it to `list:LIST_ID`"
},
expires_in:%Schema{
nullable:true,
type::integer,
description:
"The number of seconds the posted activity should expire in. When a posted activity expires it will be deleted from the server, and a delete request for it will be federated. This needs to be longer than an hour."
},
in_reply_to_conversation_id:%Schema{
nullable:true,
type::string,
description:
"Will reply to a given conversation, addressing only the people who are part of the recipient set of that conversation. Sets the visibility to `direct`."
},
quote_id:%Schema{
nullable:true,
allOf:[FlakeID],
description:"ID of the status being quoted, if any"
}
},
example:%{
"status"=>"What time is it?",
"sensitive"=>"false",
"poll"=>%{
"options"=>["Cofe","Adventure"],
"expires_in"=>420
}
}
}
end
defpupdate_requestdo
%Schema{
title:"StatusUpdateRequest",
type::object,
properties:%{
status:%Schema{
type::string,
nullable:true,
description:
"Text content of the status. If `media_ids` is provided, this becomes optional. Attaching a `poll` is optional while `status` is provided."
},
media_ids:%Schema{
nullable:true,
type::array,
items:%Schema{type::string},
description:"Array of Attachment ids to be attached as media."
},
poll:poll_params(),
sensitive:%Schema{
allOf:[BooleanLike],
nullable:true,
description:"Mark status and attached media as sensitive?"
},
spoiler_text:%Schema{
type::string,
nullable:true,
description:
"Text to be shown as a warning or subject before the actual content. Statuses are generally collapsed behind this field."
},
content_type:%Schema{
type::string,
nullable:true,
description:
"The MIME type of the status, it is transformed into HTML by the backend. You can get the list of the supported MIME types with the nodeinfo endpoint."
},
to:%Schema{
type::array,
nullable:true,
items:%Schema{type::string},
description:
"A list of nicknames (like `lain@soykaf.club` or `lain` on the local server) that will be used to determine who is going to be addressed by this post. Using this will disable the implicit addressing by mentioned names in the `status` body, only the people in the `to` list will be addressed. The normal rules for for post visibility are not affected by this and will still apply"
}
},
example:%{
"status"=>"What time is it?",
"sensitive"=>"false",
"poll"=>%{
"options"=>["Cofe","Adventure"],
"expires_in"=>420
}
}
}
end
defpoll_paramsdo
%Schema{
nullable:true,
type::object,
required:[:options,:expires_in],
properties:%{
options:%Schema{
type::array,
items:%Schema{type::string},
description:"Array of possible answers. Must be provided with `poll[expires_in]`."
},
expires_in:%Schema{
type::integer,
nullable:true,
description:
"Duration the poll should be open, in seconds. Must be provided with `poll[options]`"
},
multiple:%Schema{
allOf:[BooleanLike],
nullable:true,
description:"Allow multiple choices?"
},
hide_totals:%Schema{
allOf:[BooleanLike],
nullable:true,
description:"Hide vote counts until the poll ends?"