Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F21841290
marker_operation.ex
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
3 KB
Referenced Files
None
Subscribers
None
marker_operation.ex
View Options
# 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.MarkerOperation
do
alias
OpenApiSpex.Operation
alias
OpenApiSpex.Schema
alias
Pleroma.Web.ApiSpec.Helpers
def
open_api_operation
(
action
)
do
operation
=
String
.
to_existing_atom
(
"
#{
action
}
_operation"
)
apply
(
__MODULE__
,
operation
,
[])
end
def
index_operation
do
%
Operation
{
tags
:
[
"Markers"
],
summary
:
"Get saved timeline position"
,
security
:
[%{
"oAuth"
=>
[
"read:statuses"
]}],
operationId
:
"MarkerController.index"
,
parameters
:
[
Operation
.
parameter
(
:timeline
,
:query
,
%
Schema
{
type
:
:array
,
items
:
%
Schema
{
type
:
:string
,
enum
:
[
"home"
,
"notifications"
]}
},
"Array of markers to fetch. If not provided, an empty object will be returned."
)
],
responses
:
%{
200
=>
Operation
.
response
(
"Marker"
,
"application/json"
,
response
()),
403
=>
Operation
.
response
(
"Error"
,
"application/json"
,
api_error
())
}
}
end
def
upsert_operation
do
%
Operation
{
tags
:
[
"Markers"
],
summary
:
"Save position in timeline"
,
operationId
:
"MarkerController.upsert"
,
requestBody
:
Helpers
.
request_body
(
"Parameters"
,
upsert_request
(),
required
:
true
),
security
:
[%{
"oAuth"
=>
[
"follow"
,
"write:blocks"
]}],
responses
:
%{
200
=>
Operation
.
response
(
"Marker"
,
"application/json"
,
response
()),
403
=>
Operation
.
response
(
"Error"
,
"application/json"
,
api_error
())
}
}
end
defp
marker
do
%
Schema
{
title
:
"Marker"
,
description
:
"Schema for a marker"
,
type
:
:object
,
properties
:
%{
last_read_id
:
%
Schema
{
type
:
:string
},
version
:
%
Schema
{
type
:
:integer
},
updated_at
:
%
Schema
{
type
:
:string
},
pleroma
:
%
Schema
{
type
:
:object
,
properties
:
%{
unread_count
:
%
Schema
{
type
:
:integer
}
}
}
},
example
:
%{
"last_read_id"
=>
"35098814"
,
"version"
=>
361
,
"updated_at"
=>
"2019-11-26T22:37:25.239Z"
,
"pleroma"
=>
%{
"unread_count"
=>
5
}
}
}
end
defp
response
do
%
Schema
{
title
:
"MarkersResponse"
,
description
:
"Response schema for markers"
,
type
:
:object
,
properties
:
%{
notifications
:
%
Schema
{
allOf
:
[
marker
()],
nullable
:
true
},
home
:
%
Schema
{
allOf
:
[
marker
()],
nullable
:
true
}
},
items
:
%
Schema
{
type
:
:string
},
example
:
%{
"notifications"
=>
%{
"last_read_id"
=>
"35098814"
,
"version"
=>
361
,
"updated_at"
=>
"2019-11-26T22:37:25.239Z"
,
"pleroma"
=>
%{
"unread_count"
=>
0
}
},
"home"
=>
%{
"last_read_id"
=>
"103206604258487607"
,
"version"
=>
468
,
"updated_at"
=>
"2019-11-26T22:37:25.235Z"
,
"pleroma"
=>
%{
"unread_count"
=>
10
}
}
}
}
end
defp
upsert_request
do
%
Schema
{
title
:
"MarkersUpsertRequest"
,
description
:
"Request schema for marker upsert"
,
type
:
:object
,
properties
:
%{
notifications
:
%
Schema
{
type
:
:object
,
nullable
:
true
,
properties
:
%{
last_read_id
:
%
Schema
{
nullable
:
true
,
type
:
:string
}
}
},
home
:
%
Schema
{
type
:
:object
,
nullable
:
true
,
properties
:
%{
last_read_id
:
%
Schema
{
nullable
:
true
,
type
:
:string
}
}
}
},
example
:
%{
"home"
=>
%{
"last_read_id"
=>
"103194548672408537"
,
"version"
=>
462
,
"updated_at"
=>
"2019-11-24T19:39:39.337Z"
}
}
}
end
defp
api_error
do
%
Schema
{
type
:
:object
,
properties
:
%{
error
:
%
Schema
{
type
:
:string
}}
}
end
end
File Metadata
Details
Attached
Mime Type
text/x-ruby
Expires
Sat, Dec 27, 11:50 PM (1 d, 11 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
710396
Default Alt Text
marker_operation.ex (3 KB)
Attached To
Mode
rPUBE pleroma-upstream
Attached
Detach File
Event Timeline
Log In to Comment