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
813d2eaa
Commit
813d2eaa
authored
Oct 25, 2017
by
eal
Browse files
Add mastodon API endpoint for follow
parent
52935167
Changes
2
Hide whitespace changes
Inline
Side-by-side
lib/pleroma/web/mastodon_api/mastodon_api_controller.ex
View file @
813d2eaa
...
...
@@ -269,11 +269,13 @@ def following(conn, %{"id" => id}) do
end
end
def
follow
(%{
assigns:
%{
user:
follower
}}
=
conn
,
%{
"id"
=>
id
}
)
do
with
%
User
{}
=
followed
<-
Repo
.
get
(
U
ser
,
id
),
{
:ok
,
follower
}
<-
User
.
follow
(
follower
,
followed
),
{
:ok
,
activity
}
<-
ActivityPub
.
follow
(
follower
,
followed
)
do
def
follow
(%{
assigns:
%{
user:
follower
}}
=
conn
,
params
)
do
with
{
:ok
,
%
User
{}
=
followed
}
<-
get
_u
ser
(
params
),
{
:ok
,
follower
}
<-
User
.
follow
(
follower
,
followed
),
{
:ok
,
activity
}
<-
ActivityPub
.
follow
(
follower
,
followed
)
do
render
conn
,
AccountView
,
"relationship.json"
,
%{
user:
follower
,
target:
followed
}
else
err
->
err
end
end
...
...
@@ -338,4 +340,25 @@ def empty_array(conn, _) do
Logger
.
debug
(
"Unimplemented, returning an empty array"
)
json
(
conn
,
[])
end
defp
get_user
(
params
)
do
case
params
do
%{
"uri"
=>
uri
}
->
case
target
=
Repo
.
get_by
(
User
,
nickname:
uri
)
do
nil
->
{
:error
,
"No user with such nickname"
}
_
->
{
:ok
,
target
}
end
%{
"id"
=>
id
}
->
case
target
=
Repo
.
get
(
User
,
id
)
do
nil
->
{
:error
,
"No user with such id"
}
_
->
{
:ok
,
target
}
end
_
->
{
:error
,
"You need to specify uri or id"
}
end
end
end
lib/pleroma/web/router.ex
View file @
813d2eaa
...
...
@@ -62,6 +62,8 @@ def user_fetcher(username) do
post
"/accounts/:id/mute"
,
MastodonAPIController
,
:relationship_noop
post
"/accounts/:id/unmute"
,
MastodonAPIController
,
:relationship_noop
post
"/follows"
,
MastodonAPIController
,
:follow
get
"/blocks"
,
MastodonAPIController
,
:empty_array
get
"/domain_blocks"
,
MastodonAPIController
,
:empty_array
get
"/follow_requests"
,
MastodonAPIController
,
:empty_array
...
...
Write
Preview
Markdown
is supported
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