Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F33103419
bookmark_folder_controller.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
bookmark_folder_controller.ex
View Options
# Pleroma: A lightweight social networking server
# Copyright © 2017-2024 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule
Pleroma.Web.PleromaAPI.BookmarkFolderController
do
use
Pleroma.Web
,
:controller
alias
Pleroma.BookmarkFolder
alias
Pleroma.Web.Plugs.OAuthScopesPlug
plug
(
Pleroma.Web.ApiSpec.CastAndValidate
)
# Note: scope not present in Mastodon: read:bookmarks
plug
(
OAuthScopesPlug
,
%{
scopes
:
[
"read:bookmarks"
]}
when
action
==
:index
)
# Note: scope not present in Mastodon: write:bookmarks
plug
(
OAuthScopesPlug
,
%{
scopes
:
[
"write:bookmarks"
]}
when
action
in
[
:create
,
:update
,
:delete
]
)
defdelegate
open_api_operation
(
action
),
to
:
Pleroma.Web.ApiSpec.PleromaBookmarkFolderOperation
action_fallback
(
Pleroma.Web.MastodonAPI.FallbackController
)
def
index
(%{
assigns
:
%{
user
:
user
}}
=
conn
,
_params
)
do
with
folders
<-
BookmarkFolder
.
for_user
(
user
.
id
)
do
conn
|>
render
(
"index.json"
,
%{
folders
:
folders
,
as
:
:folder
})
end
end
def
create
(
%{
assigns
:
%{
user
:
user
},
private
:
%{
open_api_spex
:
%{
body_params
:
params
}}}
=
conn
,
_
)
do
with
{
:ok
,
folder
}
<-
BookmarkFolder
.
create
(
user
.
id
,
params
[
:name
],
params
[
:emoji
])
do
render
(
conn
,
"show.json"
,
folder
:
folder
)
end
end
def
update
(
%{
assigns
:
%{
user
:
user
},
private
:
%{
open_api_spex
:
%{
body_params
:
params
,
params
:
%{
id
:
id
}}}
}
=
conn
,
_
)
do
with
true
<-
BookmarkFolder
.
belongs_to_user?
(
id
,
user
.
id
),
{
:ok
,
folder
}
<-
BookmarkFolder
.
update
(
id
,
params
[
:name
],
params
[
:emoji
])
do
render
(
conn
,
"show.json"
,
folder
:
folder
)
else
false
->
{
:error
,
:forbidden
}
end
end
def
delete
(
%{
assigns
:
%{
user
:
user
},
private
:
%{
open_api_spex
:
%{
params
:
%{
id
:
id
}}}}
=
conn
,
_
)
do
with
true
<-
BookmarkFolder
.
belongs_to_user?
(
id
,
user
.
id
),
{
:ok
,
folder
}
<-
BookmarkFolder
.
delete
(
id
)
do
render
(
conn
,
"show.json"
,
folder
:
folder
)
else
false
->
{
:error
,
:forbidden
}
end
end
end
File Metadata
Details
Attached
Mime Type
text/x-c++
Expires
Tue, Jan 20, 1:48 PM (12 h, 15 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
930814
Default Alt Text
bookmark_folder_controller.ex (2 KB)
Attached To
Mode
rPUBE pleroma-upstream
Attached
Detach File
Event Timeline
Log In to Comment