Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Pleroma
pleroma
Commits
691d1208
Commit
691d1208
authored
Mar 26, 2019
by
Eugenij
Browse files
Add GET /api/v1/apps/verify_credentials
parent
ff3b09f6
Changes
4
Show whitespace changes
Inline
Side-by-side
lib/pleroma/web/mastodon_api/mastodon_api_controller.ex
View file @
691d1208
...
...
@@ -18,6 +18,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
alias
Pleroma
.
Web
.
ActivityPub
.
Visibility
alias
Pleroma
.
Web
.
CommonAPI
alias
Pleroma
.
Web
.
MastodonAPI
.
AccountView
alias
Pleroma
.
Web
.
MastodonAPI
.
AppView
alias
Pleroma
.
Web
.
MastodonAPI
.
FilterView
alias
Pleroma
.
Web
.
MastodonAPI
.
ListView
alias
Pleroma
.
Web
.
MastodonAPI
.
MastodonAPI
...
...
@@ -132,6 +133,14 @@ def verify_credentials(%{assigns: %{user: user}} = conn, _) do
json
(
conn
,
account
)
end
def
verify_app_credentials
(%{
assigns:
%{
user:
_user
,
token:
token
}}
=
conn
,
_
)
do
with
%
Token
{
app:
%
App
{}
=
app
}
<-
Repo
.
preload
(
token
,
:app
)
do
conn
|>
put_view
(
AppView
)
|>
render
(
"show.json"
,
%{
app:
app
})
end
end
def
user
(%{
assigns:
%{
user:
for_user
}}
=
conn
,
%{
"id"
=>
nickname_or_id
})
do
with
%
User
{}
=
user
<-
User
.
get_cached_by_nickname_or_id
(
nickname_or_id
),
true
<-
User
.
auth_active?
(
user
)
||
user
.
id
==
for_user
.
id
||
User
.
superuser?
(
for_user
)
do
...
...
lib/pleroma/web/mastodon_api/views/app_view.ex
0 → 100644
View file @
691d1208
# Pleroma: A lightweight social networking server
# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule
Pleroma
.
Web
.
MastodonAPI
.
AppView
do
use
Pleroma
.
Web
,
:view
alias
Pleroma
.
Web
.
OAuth
.
App
def
render
(
"show.json"
,
%{
app:
%
App
{
website:
webiste
,
client_name:
name
}})
do
result
=
%{
name:
name
,
website:
webiste
}
vapid_key
=
Pleroma
.
Web
.
Push
.
vapid_config
()
|>
Keyword
.
get
(
:public_key
)
result
=
if
vapid_key
do
Map
.
put
(
result
,
"vapid_key"
,
vapid_key
)
else
result
end
result
end
end
lib/pleroma/web/router.ex
View file @
691d1208
...
...
@@ -328,6 +328,7 @@ defmodule Pleroma.Web.Router do
get
(
"/instance"
,
MastodonAPIController
,
:masto_instance
)
get
(
"/instance/peers"
,
MastodonAPIController
,
:peers
)
post
(
"/apps"
,
MastodonAPIController
,
:create_app
)
get
(
"/apps/verify_credentials"
,
MastodonAPIController
,
:verify_app_credentials
)
get
(
"/custom_emojis"
,
MastodonAPIController
,
:custom_emojis
)
get
(
"/statuses/:id/card"
,
MastodonAPIController
,
:status_card
)
...
...
test/web/mastodon_api/mastodon_api_controller_test.exs
View file @
691d1208
...
...
@@ -332,6 +332,26 @@ test "verify_credentials default scope unlisted", %{conn: conn} do
assert
id
==
to_string
(
user
.
id
)
end
test
"apps/verify_credentials"
,
%{
conn:
conn
}
do
token
=
insert
(
:oauth_token
)
conn
=
conn
|>
assign
(
:user
,
token
.
user
)
|>
assign
(
:token
,
token
)
|>
get
(
"/api/v1/apps/verify_credentials"
)
app
=
Repo
.
preload
(
token
,
:app
)
.
app
expected
=
%{
"name"
=>
app
.
client_name
,
"website"
=>
app
.
website
,
"vapid_key"
=>
Pleroma
.
Web
.
Push
.
vapid_config
()
|>
Keyword
.
get
(
:public_key
)
}
assert
expected
==
json_response
(
conn
,
200
)
end
test
"get a status"
,
%{
conn:
conn
}
do
activity
=
insert
(
:note_activity
)
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment