Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F21967899
media_operation.ex
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
4 KB
Referenced Files
None
Subscribers
None
media_operation.ex
View Options
# Pleroma: A lightweight social networking server
# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule
Pleroma.Web.ApiSpec.MediaOperation
do
alias
OpenApiSpex.Operation
alias
OpenApiSpex.Schema
alias
Pleroma.Web.ApiSpec.Helpers
alias
Pleroma.Web.ApiSpec.Schemas.ApiError
alias
Pleroma.Web.ApiSpec.Schemas.Attachment
def
open_api_operation
(
action
)
do
operation
=
String
.
to_existing_atom
(
"
#{
action
}
_operation"
)
apply
(
__MODULE__
,
operation
,
[])
end
def
create_operation
do
%
Operation
{
tags
:
[
"Media attachments"
],
summary
:
"Upload media as attachment"
,
description
:
"Creates an attachment to be used with a new status."
,
operationId
:
"MediaController.create"
,
security
:
[%{
"oAuth"
=>
[
"write:media"
]}],
requestBody
:
Helpers
.
request_body
(
"Parameters"
,
create_request
()),
responses
:
%{
200
=>
Operation
.
response
(
"Media"
,
"application/json"
,
Attachment
),
400
=>
Operation
.
response
(
"Media"
,
"application/json"
,
ApiError
),
401
=>
Operation
.
response
(
"Media"
,
"application/json"
,
ApiError
),
422
=>
Operation
.
response
(
"Media"
,
"application/json"
,
ApiError
)
}
}
end
defp
create_request
do
%
Schema
{
title
:
"MediaCreateRequest"
,
description
:
"POST body for creating an attachment"
,
type
:
:object
,
required
:
[
:file
],
properties
:
%{
file
:
%
Schema
{
type
:
:string
,
format
:
:binary
,
description
:
"The file to be attached, using multipart form data."
},
description
:
%
Schema
{
type
:
:string
,
description
:
"A plain-text description of the media, for accessibility purposes."
},
focus
:
%
Schema
{
type
:
:string
,
description
:
"Two floating points (x,y), comma-delimited, ranging from -1.0 to 1.0."
}
}
}
end
def
update_operation
do
%
Operation
{
tags
:
[
"Media attachments"
],
summary
:
"Update attachment"
,
description
:
"Creates an attachment to be used with a new status."
,
operationId
:
"MediaController.update"
,
security
:
[%{
"oAuth"
=>
[
"write:media"
]}],
parameters
:
[
id_param
()],
requestBody
:
Helpers
.
request_body
(
"Parameters"
,
update_request
()),
responses
:
%{
200
=>
Operation
.
response
(
"Media"
,
"application/json"
,
Attachment
),
400
=>
Operation
.
response
(
"Media"
,
"application/json"
,
ApiError
),
401
=>
Operation
.
response
(
"Media"
,
"application/json"
,
ApiError
),
422
=>
Operation
.
response
(
"Media"
,
"application/json"
,
ApiError
)
}
}
end
defp
update_request
do
%
Schema
{
title
:
"MediaUpdateRequest"
,
description
:
"POST body for updating an attachment"
,
type
:
:object
,
properties
:
%{
file
:
%
Schema
{
type
:
:string
,
format
:
:binary
,
description
:
"The file to be attached, using multipart form data."
},
description
:
%
Schema
{
type
:
:string
,
description
:
"A plain-text description of the media, for accessibility purposes."
},
focus
:
%
Schema
{
type
:
:string
,
description
:
"Two floating points (x,y), comma-delimited, ranging from -1.0 to 1.0."
}
}
}
end
def
show_operation
do
%
Operation
{
tags
:
[
"Media attachments"
],
summary
:
"Attachment"
,
operationId
:
"MediaController.show"
,
parameters
:
[
id_param
()],
security
:
[%{
"oAuth"
=>
[
"read:media"
]}],
responses
:
%{
200
=>
Operation
.
response
(
"Media"
,
"application/json"
,
Attachment
),
401
=>
Operation
.
response
(
"Media"
,
"application/json"
,
ApiError
),
403
=>
Operation
.
response
(
"Media"
,
"application/json"
,
ApiError
),
422
=>
Operation
.
response
(
"Media"
,
"application/json"
,
ApiError
)
}
}
end
def
create2_operation
do
%
Operation
{
tags
:
[
"Media attachments"
],
summary
:
"Upload media as attachment (v2)"
,
description
:
"Creates an attachment to be used with a new status."
,
operationId
:
"MediaController.create2"
,
security
:
[%{
"oAuth"
=>
[
"write:media"
]}],
requestBody
:
Helpers
.
request_body
(
"Parameters"
,
create_request
()),
responses
:
%{
202
=>
Operation
.
response
(
"Media"
,
"application/json"
,
Attachment
),
400
=>
Operation
.
response
(
"Media"
,
"application/json"
,
ApiError
),
422
=>
Operation
.
response
(
"Media"
,
"application/json"
,
ApiError
),
500
=>
Operation
.
response
(
"Media"
,
"application/json"
,
ApiError
)
}
}
end
defp
id_param
do
Operation
.
parameter
(
:id
,
:path
,
:string
,
"The ID of the Attachment entity"
)
end
end
File Metadata
Details
Attached
Mime Type
text/x-ruby
Expires
Sun, Dec 28, 3:24 AM (1 d, 16 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
725813
Default Alt Text
media_operation.ex (4 KB)
Attached To
Mode
rPUBE pleroma-upstream
Attached
Detach File
Event Timeline
Log In to Comment