Skip to content
GitLab
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
093fd183
Commit
093fd183
authored
Mar 20, 2017
by
lain
Browse files
Add Twitter API verify_credentials endpoint.
parent
980717fd
Changes
3
Hide whitespace changes
Inline
Side-by-side
lib/pleroma/web/router.ex
View file @
093fd183
defmodule
Pleroma
.
Web
.
Router
do
use
Pleroma
.
Web
,
:router
alias
Pleroma
.
{
Repo
,
User
}
def
user_fetcher
(
username
)
do
{
:ok
,
Repo
.
get_by
(
User
,
%{
nickname:
username
})}
end
pipeline
:api
do
plug
:accepts
,
[
"json"
]
end
pipeline
:authenticated_api
do
plug
:accepts
,
[
"json"
]
plug
:fetch_session
plug
Pleroma
.
Plugs
.
AuthenticationPlug
,
fetcher:
&
Pleroma
.
Web
.
Router
.
user_fetcher
/
1
end
scope
"/api"
,
Pleroma
.
Web
do
pipe_through
:api
pipe_through
:authenticated_api
post
"/account/verify_credentials.json"
,
TwitterAPI
.
Controller
,
:verify_credentials
end
end
lib/pleroma/web/twitter_api/twitter_api_controller.ex
0 → 100644
View file @
093fd183
defmodule
Pleroma
.
Web
.
TwitterAPI
.
Controller
do
use
Pleroma
.
Web
,
:controller
alias
Pleroma
.
Web
.
TwitterAPI
.
Representers
.
UserRepresenter
def
verify_credentials
(%{
assigns:
%{
user:
user
}}
=
conn
,
_params
)
do
response
=
user
|>
UserRepresenter
.
to_json
conn
|>
json_reply
(
200
,
response
)
end
defp
json_reply
(
conn
,
status
,
json
)
do
conn
|>
put_resp_content_type
(
"application/json"
)
|>
send_resp
(
status
,
json
)
end
end
test/web/twitter_api/twitter_api_controller_test.exs
0 → 100644
View file @
093fd183
defmodule
Pleroma
.
Web
.
TwitterAPI
.
ControllerTest
do
use
Pleroma
.
Web
.
ConnCase
alias
Pleroma
.
{
User
,
Repo
}
alias
Pleroma
.
Web
.
TwitterAPI
.
Representers
.
UserRepresenter
describe
"POST /api/account/verify_credentials"
do
setup
[
:valid_user
]
test
"without valid credentials"
,
%{
conn:
conn
}
do
conn
=
post
conn
,
"/api/account/verify_credentials.json"
assert
json_response
(
conn
,
403
)
==
%{
"error"
=>
"Invalid credentials."
}
end
test
"with credentials"
,
%{
conn:
conn
,
user:
user
}
do
conn
=
conn
|>
with_credentials
(
user
.
nickname
,
"test"
)
|>
post
(
"/api/account/verify_credentials.json"
)
assert
json_response
(
conn
,
200
)
==
UserRepresenter
.
to_map
(
user
)
end
end
defp
valid_user
(
_context
)
do
user
=
%
User
{
email:
"test@example.org"
,
name:
"Test Name"
,
nickname:
"testname"
,
password_hash:
Comeonin
.
Pbkdf2
.
hashpwsalt
(
"test"
),
bio:
"A tester."
}
user
=
Repo
.
insert!
(
user
)
[
user:
user
]
end
defp
with_credentials
(
conn
,
username
,
password
)
do
header_content
=
"Basic "
<>
Base
.
encode64
(
"
#{
username
}
:
#{
password
}
"
)
put_req_header
(
conn
,
"authorization"
,
header_content
)
end
end
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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