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
eb9358c8
Commit
eb9358c8
authored
Apr 16, 2017
by
lain
Browse files
Add basic Avatar updating code.
parent
03a9c11d
Changes
4
Expand all
Hide whitespace changes
Inline
Side-by-side
lib/pleroma/web/router.ex
View file @
eb9358c8
...
...
@@ -45,5 +45,6 @@ def user_fetcher(username) do
post
"/favorites/create"
,
TwitterAPI
.
Controller
,
:favorite
post
"/favorites/destroy/:id"
,
TwitterAPI
.
Controller
,
:unfavorite
post
"/statuses/retweet/:id"
,
TwitterAPI
.
Controller
,
:retweet
post
"/qvitter/update_avatar"
,
TwitterAPI
.
Controller
,
:update_avatar
end
end
lib/pleroma/web/twitter_api/twitter_api_controller.ex
View file @
eb9358c8
...
...
@@ -3,6 +3,7 @@ defmodule Pleroma.Web.TwitterAPI.Controller do
alias
Pleroma
.
Web
.
TwitterAPI
.
TwitterAPI
alias
Pleroma
.
Web
.
TwitterAPI
.
Representers
.
{
UserRepresenter
,
ActivityRepresenter
}
alias
Pleroma
.
{
Repo
,
Activity
}
alias
Pleroma
.
Web
.
ActivityPub
.
ActivityPub
def
verify_credentials
(%{
assigns:
%{
user:
user
}}
=
conn
,
_params
)
do
response
=
user
|>
UserRepresenter
.
to_json
(%{
for:
user
})
...
...
@@ -142,6 +143,18 @@ def register(conn, params) do
end
end
def
update_avatar
(%{
assigns:
%{
user:
user
}}
=
conn
,
params
)
do
{
:ok
,
object
}
=
ActivityPub
.
upload
(
params
)
change
=
Ecto
.
Changeset
.
change
(
user
,
%{
avatar:
object
.
data
})
{
:ok
,
user
}
=
Repo
.
update
(
change
)
response
=
UserRepresenter
.
to_map
(
user
,
%{
for:
user
})
|>
Poison
.
encode!
conn
|>
json_reply
(
200
,
response
)
end
defp
json_reply
(
conn
,
status
,
json
)
do
conn
|>
put_resp_content_type
(
"application/json"
)
...
...
test/web/activity_pub/activity_pub_test.exs
View file @
eb9358c8
This diff is collapsed.
Click to expand it.
test/web/twitter_api/twitter_api_controller_test.exs
View file @
eb9358c8
...
...
@@ -157,6 +157,24 @@ test "with credentials", %{conn: conn, user: current_user} do
end
end
describe
"POST /api/qvitter/update_avatar.json"
do
setup
[
:valid_user
]
test
"without valid credentials"
,
%{
conn:
conn
}
do
conn
=
post
conn
,
"/api/qvitter/update_avatar.json"
assert
json_response
(
conn
,
403
)
==
%{
"error"
=>
"Invalid credentials."
}
end
test
"with credentials"
,
%{
conn:
conn
,
user:
current_user
}
do
conn
=
conn
|>
with_credentials
(
current_user
.
nickname
,
"test"
)
|>
post
(
"/api/qvitter/update_avatar.json"
,
%{
img:
Pleroma
.
Web
.
ActivityPub
.
ActivityPubTest
.
data_uri
})
current_user
=
Repo
.
get
(
User
,
current_user
.
id
)
assert
is_map
(
current_user
.
avatar
)
assert
json_response
(
conn
,
200
)
==
UserRepresenter
.
to_map
(
current_user
,
%{
for:
current_user
})
end
end
describe
"POST /api/favorites/create/:id"
do
setup
[
:valid_user
]
test
"without valid credentials"
,
%{
conn:
conn
}
do
...
...
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