Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F21967941
report_operation.ex
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
2 KB
Referenced Files
None
Subscribers
None
report_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.ReportOperation
do
alias
OpenApiSpex.Operation
alias
OpenApiSpex.Schema
alias
Pleroma.Web.ApiSpec.Helpers
alias
Pleroma.Web.ApiSpec.Schemas.ApiError
alias
Pleroma.Web.ApiSpec.Schemas.BooleanLike
def
open_api_operation
(
action
)
do
operation
=
String
.
to_existing_atom
(
"
#{
action
}
_operation"
)
apply
(
__MODULE__
,
operation
,
[])
end
def
create_operation
do
%
Operation
{
tags
:
[
"Reports"
],
summary
:
"File a report"
,
description
:
"Report problematic users to your moderators"
,
operationId
:
"ReportController.create"
,
security
:
[%{
"oAuth"
=>
[
"follow"
,
"write:reports"
]}],
requestBody
:
Helpers
.
request_body
(
"Parameters"
,
create_request
(),
required
:
true
),
responses
:
%{
200
=>
Operation
.
response
(
"Report"
,
"application/json"
,
create_response
()),
400
=>
Operation
.
response
(
"Report"
,
"application/json"
,
ApiError
)
}
}
end
defp
create_request
do
%
Schema
{
title
:
"ReportCreateRequest"
,
description
:
"POST body for creating a report"
,
type
:
:object
,
properties
:
%{
account_id
:
%
Schema
{
type
:
:string
,
description
:
"ID of the account to report"
},
status_ids
:
%
Schema
{
type
:
:array
,
nullable
:
true
,
items
:
%
Schema
{
type
:
:string
},
description
:
"Array of Statuses to attach to the report, for context"
},
comment
:
%
Schema
{
type
:
:string
,
nullable
:
true
,
description
:
"Reason for the report"
},
forward
:
%
Schema
{
allOf
:
[
BooleanLike
],
nullable
:
true
,
default
:
false
,
description
:
"If the account is remote, should the report be forwarded to the remote admin?"
}
},
required
:
[
:account_id
],
example
:
%{
"account_id"
=>
"123"
,
"status_ids"
=>
[
"1337"
],
"comment"
=>
"bad status!"
,
"forward"
=>
"false"
}
}
end
defp
create_response
do
%
Schema
{
title
:
"ReportResponse"
,
type
:
:object
,
properties
:
%{
id
:
%
Schema
{
type
:
:string
,
description
:
"Report ID"
},
action_taken
:
%
Schema
{
type
:
:boolean
,
description
:
"Is action taken?"
}
},
example
:
%{
"id"
=>
"123"
,
"action_taken"
=>
false
}
}
end
end
File Metadata
Details
Attached
Mime Type
text/x-ruby
Expires
Sun, Dec 28, 3:24 AM (1 d, 20 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
728697
Default Alt Text
report_operation.ex (2 KB)
Attached To
Mode
rPUBE pleroma-upstream
Attached
Detach File
Event Timeline
Log In to Comment