Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F45707659
instance_document_controller.ex
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
1 KB
Referenced Files
None
Subscribers
None
instance_document_controller.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.AdminAPI.InstanceDocumentController
do
use
Pleroma.Web
,
:controller
alias
Pleroma.Web.InstanceDocument
alias
Pleroma.Web.Plugs.InstanceStatic
alias
Pleroma.Web.Plugs.OAuthScopesPlug
plug
(
Pleroma.Web.ApiSpec.CastAndValidate
)
action_fallback
(
Pleroma.Web.AdminAPI.FallbackController
)
defdelegate
open_api_operation
(
action
),
to
:
Pleroma.Web.ApiSpec.Admin.InstanceDocumentOperation
plug
(
OAuthScopesPlug
,
%{
scopes
:
[
"admin:read"
]}
when
action
==
:show
)
plug
(
OAuthScopesPlug
,
%{
scopes
:
[
"admin:write"
]}
when
action
in
[
:update
,
:delete
])
def
show
(
conn
,
%{
name
:
document_name
})
do
with
{
:ok
,
url
}
<-
InstanceDocument
.
get
(
document_name
),
{
:ok
,
content
}
<-
File
.
read
(
InstanceStatic
.
file_path
(
url
))
do
conn
|>
put_resp_content_type
(
"text/html"
)
|>
send_resp
(
200
,
content
)
end
end
def
update
(%{
body_params
:
%{
file
:
file
}}
=
conn
,
%{
name
:
document_name
})
do
with
{
:ok
,
url
}
<-
InstanceDocument
.
put
(
document_name
,
file
.
path
)
do
json
(
conn
,
%{
"url"
=>
url
})
end
end
def
delete
(
conn
,
%{
name
:
document_name
})
do
with
:ok
<-
InstanceDocument
.
delete
(
document_name
)
do
json
(
conn
,
%{})
end
end
end
File Metadata
Details
Attached
Mime Type
text/x-ruby
Expires
Sat, Mar 7, 9:46 AM (1 d, 3 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1156650
Default Alt Text
instance_document_controller.ex (1 KB)
Attached To
Mode
rPUBE pleroma-upstream
Attached
Detach File
Event Timeline
Log In to Comment