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
5c8f07f0
Commit
5c8f07f0
authored
Nov 18, 2018
by
lain
Browse files
Fix note counting.
parent
47d883d3
Changes
3
Hide whitespace changes
Inline
Side-by-side
lib/pleroma/user.ex
View file @
5c8f07f0
...
...
@@ -411,22 +411,19 @@ def get_follow_requests(%User{} = user) do
end
def
increase_note_count
(%
User
{}
=
user
)
do
note_count
=
(
user
.
info
[
"note_count"
]
||
0
)
+
1
new_info
=
Map
.
put
(
user
.
info
,
"note_count"
,
note_count
)
cs
=
info_changeset
(
user
,
%{
info:
new_info
})
info_cng
=
User
.
Info
.
add_to_note_count
(
user
.
info
,
1
)
cng
=
change
(
user
)
|>
put_embed
(
:info
,
info_cng
)
update_and_set_cache
(
c
s
)
update_and_set_cache
(
c
ng
)
end
def
decrease_note_count
(%
User
{}
=
user
)
do
note_count
=
user
.
info
[
"note_count"
]
||
0
note_count
=
if
note_count
<=
0
,
do
:
0
,
else
:
note_count
-
1
new_info
=
Map
.
put
(
user
.
info
,
"note_count"
,
note_count
)
cs
=
info_changeset
(
user
,
%{
info:
new_info
})
info_cng
=
User
.
Info
.
add_to_note_count
(
user
.
info
,
-
1
)
cng
=
change
(
user
)
|>
put_embed
(
:info
,
info_cng
)
update_and_set_cache
(
c
s
)
update_and_set_cache
(
c
ng
)
end
def
update_note_count
(%
User
{}
=
user
)
do
...
...
lib/pleroma/user/info.ex
View file @
5c8f07f0
...
...
@@ -24,4 +24,12 @@ def set_activation_status(info, deactivated) do
|>
cast
(
params
,
[
:deactivated
])
|>
validate_required
([
:deactivated
])
end
def
add_to_note_count
(
info
,
number
)
do
params
=
%{
note_count:
Enum
.
max
([
0
,
info
.
note_count
+
number
])}
info
|>
cast
(
params
,
[
:note_count
])
|>
validate_required
([
:note_count
])
end
end
test/user_test.exs
View file @
5c8f07f0
...
...
@@ -322,34 +322,34 @@ test "it increases the info->note_count property" do
note
=
insert
(
:note
)
user
=
User
.
get_by_ap_id
(
note
.
data
[
"actor"
])
assert
user
.
info
[
"
note_count
"
]
==
nil
assert
user
.
info
.
note_count
==
0
{
:ok
,
user
}
=
User
.
increase_note_count
(
user
)
assert
user
.
info
[
"
note_count
"
]
==
1
assert
user
.
info
.
note_count
==
1
{
:ok
,
user
}
=
User
.
increase_note_count
(
user
)
assert
user
.
info
[
"
note_count
"
]
==
2
assert
user
.
info
.
note_count
==
2
end
test
"it decreases the info->note_count property"
do
note
=
insert
(
:note
)
user
=
User
.
get_by_ap_id
(
note
.
data
[
"actor"
])
assert
user
.
info
[
"
note_count
"
]
==
nil
assert
user
.
info
.
note_count
==
0
{
:ok
,
user
}
=
User
.
increase_note_count
(
user
)
assert
user
.
info
[
"
note_count
"
]
==
1
assert
user
.
info
.
note_count
==
1
{
:ok
,
user
}
=
User
.
decrease_note_count
(
user
)
assert
user
.
info
[
"
note_count
"
]
==
0
assert
user
.
info
.
note_count
==
0
{
:ok
,
user
}
=
User
.
decrease_note_count
(
user
)
assert
user
.
info
[
"
note_count
"
]
==
0
assert
user
.
info
.
note_count
==
0
end
test
"it sets the info->follower_count property"
do
...
...
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