Andrea Maria Piana
4e18d21129
Re-register on adding or removing a chat
2020-09-09 21:22:16 +02:00
Andrea Maria Piana
0d998e1858
Show correct text in case of mentions
2020-09-09 21:22:15 +02:00
Andrea Maria Piana
18877cae6f
Handle mentions on server
2020-09-09 21:22:14 +02:00
Andrea Maria Piana
8ee3c75510
Support for basic push notification for mentions
2020-09-09 21:22:13 +02:00
Andrea Maria Piana
00c5b60d7f
Move message to common namespace
2020-09-09 21:22:12 +02:00
Andrea Maria Piana
7d5d413222
Add parsing and storing of mentions
2020-09-09 21:22:07 +02:00
Roman Volosovskyi
57728224d4
[mentions] ParsedText in quoted message
...
ParsedText is needed to properly display mention in quoted message.
2020-09-09 16:07:31 +03:00
Andrea Maria Piana
32b0af8ecc
Add index to emoji reactions
2020-09-09 15:02:54 +02:00
andrey
3b748a2e46
group chat invitation
2020-09-07 12:15:58 +02:00
andrey
2eaa1fcad7
[ #11046 ] Add local contact names
2020-09-07 11:34:06 +02:00
Volodymyr Kozieiev
88a3022ea8
Drop messages with text longer than 4096 characters ( #2029 )
2020-09-01 17:38:36 +03:00
Andrea Maria Piana
4a87764cca
seed mrand
2020-09-01 10:31:12 +02:00
Andrea Maria Piana
2ef1aa89f4
Handle connection change
...
Currently messenger has no notion of being online.
This might cause a problem as we retry to register with a push
notification server even if not connected to any peer, which will
inevitably fail.
This commit adds a method `handleConnectionChange` that will be called
every time the connection change state.
2020-08-27 18:54:31 +02:00
Andrea Maria Piana
0ff2542939
Don't add contact on update
...
When sending a contact update we automatically added the contact,
but that resulted in the contact not being synced correctly as
`saveContact` will not trigger the side effects.
For now I have removed this behavior. Ideally we should have a single
call that handles the side effects, but for that ENS names should be
stored in messenger, so we can propagate it.
2020-08-27 18:54:30 +02:00
Andrea Maria Piana
640f5533ca
handle notifications at-most-once
2020-08-27 18:54:29 +02:00
Andrea Maria Piana
d7222c89e0
shuffle servers and limit & filter by chat id
2020-08-27 18:54:28 +02:00
Andrea Maria Piana
401d18e558
Enabled push notifications by default and add fleet
2020-08-27 18:54:06 +02:00
Andrea Maria Piana
d09eaeacb8
Allow node to start a push notification server
...
This commit allows a node to start a push notification server.
If the config is set it will start a messenger with a corresponding pn
server.
2020-08-20 10:54:33 +02:00
Andrea Maria Piana
ac6aff2486
Re-issue bundle on changed parameters
2020-08-19 11:57:39 +02:00
Andrea Maria Piana
4cf491ae38
add push notification type
2020-08-18 16:29:58 +02:00
Andrea Maria Piana
874d1d0fa6
Update protocol/pushnotificationclient/client.go
...
Co-authored-by: Samuel Hawksby-Robinson <samuel@samyoul.com>
2020-08-18 16:29:57 +02:00
Andrea Maria Piana
2b2616f82c
Bump version to 0.57.0
2020-08-18 16:29:55 +02:00
Andrea Maria Piana
5544e710ab
send push notification info with contact code
2020-08-18 16:29:38 +02:00
Andrea Maria Piana
541756c777
move contact code to subscription
2020-08-18 16:29:37 +02:00
Andrea Maria Piana
b557a64612
move shared secrets to subscription
2020-08-18 16:29:36 +02:00
Andrea Maria Piana
dd3cf55556
move installations to subscription
2020-08-18 16:29:35 +02:00
Andrea Maria Piana
be8e64fe8d
fix version check
2020-08-18 16:29:35 +02:00
Andrea Maria Piana
46aef6f3df
nil registration when unregistering
2020-08-18 16:29:34 +02:00
Andrea Maria Piana
aa78b89b40
handle unregistered clients
2020-08-18 16:29:33 +02:00
Andrea Maria Piana
4b9d3df5ad
Set RemotePushNotifications
2020-08-18 16:29:32 +02:00
Andrea Maria Piana
91074ac95e
Add apn-topic & token-type set by the client
2020-08-18 16:29:31 +02:00
Andrea Maria Piana
60e61caad8
invalidate token if allow from contacts only has been enabled
2020-08-18 16:29:30 +02:00
Andrea Maria Piana
e8daee3712
Add topic
2020-08-18 16:29:29 +02:00
Andrea Maria Piana
2e231e690e
Fix mark messages seen
...
If a chat had a last message the persistence call `Chat()` would not
decode `LastMessage` correctly.
This commit fixes the issue.
2020-08-17 13:40:10 +02:00
Samuel Hawksby-Robinson
19487da894
Fixes a minor rebase quirk ( #2016 )
...
See commit fc7b311838
2020-08-13 18:57:17 +01:00
Andrea Maria Piana
2d0818d873
Add SignMessageWithChatKey
2020-07-31 14:51:24 +02:00
Andrea Maria Piana
ab01a05cd6
Don't use bytes anymore for LastMessage
...
LastMessage in chat was encoded in bytes so that we don't have to
encoded/decode everytime we save to db or pass the client.
An issue with emoji surfaced a problem with this approach.
Chat.LastClockValue represent the last clock value of any type of
message exchanged in a chat (emoji,group membership updates, contact
updates).
So when receving a new message, we should update LastMessage if the
clock of the LastMessage is lower than the received message, and we
should not only check LastClockValue, otherwise the message might be
discarded although it is the most recent.
This commit fixes the issue by keeping LastMessage as an object and
comparing LastMessage.Clock instead of LastClockValue
2020-07-31 13:40:11 +02:00
Andrea Maria Piana
5e4d58a807
Fix lastMessage when receive an emoji out of order
2020-07-30 21:14:47 +02:00
Andrea Maria Piana
2cc3a9bab1
increase count & add comment
2020-07-30 20:21:10 +02:00
Andrea Maria Piana
b17d51e83d
describe chat entity comment
2020-07-30 20:21:08 +02:00
Andrea Maria Piana
33c87a670a
Uncommet test
2020-07-30 20:21:07 +02:00
Andrea Maria Piana
5910de3683
Handle emoji reaction in group chat
2020-07-30 20:21:06 +02:00
Andrea Maria Piana
b3c6afe99b
dont use a pointer
2020-07-30 20:21:05 +02:00
Andrea Maria Piana
eb087a00a4
add retracted
2020-07-30 20:21:04 +02:00
Andrea Maria Piana
fcb901daf2
remove leftover emojialias
2020-07-30 20:21:03 +02:00
Andrea Maria Piana
4a83c86c3e
Add EmojiReaction to membershipupdatemessage
2020-07-30 20:21:02 +02:00
Andrea Maria Piana
7e7d95a907
camel case emojiReactions
2020-07-30 20:21:01 +02:00
Andrea Maria Piana
a1a6e1c6c0
linting
2020-07-30 20:21:00 +02:00
Andrea Maria Piana
29f25c5486
Use local chat-id for matching messages
2020-07-30 20:20:59 +02:00
Andrea Maria Piana
d067b56fc2
Fix cursored query for emoji
2020-07-30 20:20:58 +02:00
Andrea Maria Piana
37a2073008
add endpoint for getting emojis
2020-07-30 20:20:40 +02:00
Andrea Maria Piana
3e4e1ff663
update migrations
2020-07-30 20:20:39 +02:00
Andrea Maria Piana
db43fa4894
camel case emojiReactions
2020-07-30 20:20:38 +02:00
Andrea Maria Piana
5a178939de
Use same message with flag for emoji retraction and use compound id
2020-07-30 20:20:37 +02:00
Andrea Maria Piana
2bf1991190
Use reflect.Value as ParsedMessage type and handle type case
2020-07-30 20:20:36 +02:00
Samuel Hawksby-Robinson
de79f2ced0
Fix bug, logger var name collided with package name
2020-07-30 20:20:35 +02:00
Samuel Hawksby-Robinson
acfcac6748
Implemented encodeChatEntity() into SendChatMessage and SendEmojiReaction
2020-07-30 20:20:34 +02:00
Samuel Hawksby-Robinson
b70c362f2b
Bug fix on SendChatMessage() related to membership update
2020-07-30 20:20:33 +02:00
Samuel Hawksby-Robinson
e9eb05e3d1
Bug fix on HandleMembershipUpdate()
2020-07-30 20:20:32 +02:00
Samuel Hawksby-Robinson
45c1e5ba1c
Updated MembershipUpdateMessage to use interfaced ChatEntity
...
Replaces ChatMessage only field
2020-07-30 20:20:31 +02:00
Samuel Hawksby-Robinson
b6d24e950c
Added oneof chat_entity option to membership_update_message
2020-07-30 20:20:30 +02:00
Samuel Hawksby-Robinson
3e857203ac
Created ChatEntity encoding per chat type
2020-07-30 20:20:29 +02:00
Samuel Hawksby-Robinson
6ffe67deec
Added ChatEntity interface and made required changes for its use
2020-07-30 20:20:28 +02:00
Samuel Hawksby-Robinson
ceed618102
Updated all MessageType references
2020-07-30 20:20:27 +02:00
Samuel Hawksby-Robinson
c0a0238b0e
Moved protobuf MessageType enum into dedicated file
2020-07-30 20:20:26 +02:00
Samuel Hawksby-Robinson
373ddc5449
Added chat id to emoji reaction protobuf
2020-07-30 20:20:25 +02:00
Samuel Hawksby-Robinson
9a775619cd
Added basic EmojiReaction handler
2020-07-30 20:20:24 +02:00
Samuel Hawksby-Robinson
eb562122b6
Added general protobuf umarshaller function
2020-07-30 20:20:23 +02:00
Samuel Hawksby-Robinson
5823ebe446
Added emoji reaction retraction message type unmarshalling
2020-07-30 20:20:22 +02:00
Samuel Hawksby-Robinson
5ee3a0a1b5
Added check emoji reaction retraction sender against current identity
2020-07-30 20:20:21 +02:00
Samuel Hawksby-Robinson
0a26d5a37d
Added emoji reaction retraction persistence
2020-07-30 20:20:20 +02:00
Samuel Hawksby-Robinson
106ccfcf0f
Added main functionality for SendEmojiReactionRetraction()
2020-07-30 20:20:19 +02:00
Samuel Hawksby-Robinson
8779b9a333
Added emoji_reaction get by id db func
2020-07-30 20:20:18 +02:00
Samuel Hawksby-Robinson
fdc180039f
Added emoji_reaction persistence
2020-07-30 20:20:17 +02:00
Samuel Hawksby-Robinson
241439e56b
make generate
2020-07-30 20:20:16 +02:00
Samuel Hawksby-Robinson
9b8d0ba167
Added chat_id to emoji_reactions table
2020-07-30 20:20:15 +02:00
Samuel Hawksby-Robinson
4899b43a48
delinted
2020-07-30 20:20:14 +02:00
Samuel Hawksby-Robinson
0fdb2de6d1
Added return to prevent compile fail
2020-07-30 20:20:13 +02:00
Samuel Hawksby-Robinson
db517eb1f4
Removed lines I've added
2020-07-30 20:20:12 +02:00
Samuel Hawksby-Robinson
ae1e6db883
Removed original iteration
2020-07-30 20:20:11 +02:00
Samuel Hawksby-Robinson
2d9db29f31
Added Messenger.SendEmojiReaction()
...
stubbed SendEmojiReactionRetraction() added new protocol/EmojiReaction{}
2020-07-30 20:20:10 +02:00
Samuel Hawksby-Robinson
1dadab9104
Added emoji reaction app meta message type
2020-07-30 20:20:09 +02:00
Samuel Hawksby-Robinson
f6594cc306
make generate for new emoji reaction table
2020-07-30 20:20:08 +02:00
Samuel Hawksby-Robinson
57319599de
created emoji_reaction table migration
...
Signed-off-by: Samuel Hawksby-Robinson <samuel@samyoul.com>
2020-07-30 20:20:07 +02:00
Samuel Hawksby-Robinson
961c00069b
Added emoji_reaction.proto to protobuf/service.go
2020-07-30 20:20:06 +02:00
Samuel Hawksby-Robinson
7049dfc0b8
Split emoji_reaction into dedicated proto
2020-07-30 20:20:05 +02:00
Samuel Hawksby-Robinson
f16285ea0d
Fix of minor JSON formating bug
2020-07-30 20:20:04 +02:00
Samuel Hawksby-Robinson
412f6c6280
Lint fixes
2020-07-30 20:20:03 +02:00
Samuel Hawksby-Robinson
8cff21d254
make generate
2020-07-30 20:20:02 +02:00
Samuel Hawksby-Robinson
a899264bc7
Added emoji reaction migrations
2020-07-30 20:20:01 +02:00
Samuel Hawksby-Robinson
fc7b311838
Added switch to persistence
2020-07-30 20:20:01 +02:00
Samuel Hawksby-Robinson
351cc4403d
Added emoji reaction to message persistence
2020-07-30 20:20:00 +02:00
Samuel Hawksby-Robinson
073ff0b6af
Added message validator tests for emoji reactions
2020-07-30 20:19:59 +02:00
Samuel Hawksby-Robinson
a0e7e0751c
Added emoji reaction message type validation
2020-07-30 20:19:58 +02:00
Samuel Hawksby-Robinson
154a169ffb
Moved message.ContentType base checks to a switch
2020-07-30 20:19:57 +02:00
Samuel Hawksby-Robinson
8089468e83
Added emoji reaction JSON RPC un/marshalling
2020-07-30 20:19:56 +02:00
Samuel Hawksby-Robinson
39bd6d479a
Added emoji retraction type
2020-07-30 20:19:55 +02:00
Samuel Hawksby-Robinson
9e09a265e2
Added emoji reaction content type
2020-07-30 20:19:54 +02:00
Samuel Hawksby-Robinson
2f5f00f1a8
Added EmojiReaction and EmojiReactionRetraction protobuf
2020-07-30 20:19:22 +02:00
Andrea Maria Piana
eadf68325e
Fix audio null value
...
If a message was inserted before the migration the field
audio_duration_ms would be set to NULL, and would not be serialized into
go correctly, as uint is non-nullable.
this commit fixes the issue by calling COALESCE on the value.
2020-07-30 15:00:39 +02:00
Andrea Maria Piana
0fb5ed2207
dont use a pointer for public methods
2020-07-29 12:51:48 +02:00
Andrea Maria Piana
45815e57d7
Add feature flag for push notifications and bump version
2020-07-27 17:20:16 +02:00
Andrea Maria Piana
4ae2c59e9b
Update protocol/message.go
...
Co-authored-by: Samuel Hawksby-Robinson <samuel@samyoul.com>
2020-07-27 17:15:16 +02:00
Andrea Maria Piana
bdb2708a39
log
2020-07-27 17:15:15 +02:00
Andrea Maria Piana
a2f273e616
use ms
2020-07-27 17:15:14 +02:00
Andrea Maria Piana
8716a8ce45
add audio duration
2020-07-27 17:15:10 +02:00
Andrea Maria Piana
e58ba1e9c8
Add audio messages
...
Why make this change?
We are adding support of audio recorded files, similarly to how we did
with images
What has changed?
- Added protobuf definition, only AAC supported
- Added migrations to store files
- Fixed an issue with nil pointer when transaction would fail to be
created, causing the application to crash
2020-07-27 17:14:50 +02:00
Andrea Maria Piana
4b8739a8bc
Polish up and address review feedback
2020-07-27 08:51:28 +02:00
Andrea Maria Piana
63af6aa79b
Use ephemeral keys for sending messsages
2020-07-27 08:51:27 +02:00
Andrea Maria Piana
2be8dff54a
Make sure pn is resent and succesful in tests
2020-07-27 08:51:26 +02:00
Andrea Maria Piana
59d1ee4bb9
full e2e tests
2020-07-27 08:51:25 +02:00
Andrea Maria Piana
149fc5e3eb
Test token invalidation
2020-07-27 08:51:24 +02:00
Andrea Maria Piana
d775bb888a
Handle retries & use sendChatMessage for e2e tests
2020-07-27 08:51:23 +02:00
Andrea Maria Piana
aa5aa63342
Save response from push notification
2020-07-27 08:51:22 +02:00
Andrea Maria Piana
52e7089e39
Test contact only notifications
2020-07-27 08:51:21 +02:00
Andrea Maria Piana
58817aad5b
Use separate flag for allowonlyfromcontacst
2020-07-27 08:51:20 +02:00
Andrea Maria Piana
bec8fbb855
Handle allowedContact lists
2020-07-27 08:51:19 +02:00
Andrea Maria Piana
12a3c5a31a
Add version to notification info
2020-07-27 08:51:18 +02:00
Andrea Maria Piana
026e16533f
Register asynchronously
2020-07-27 08:51:17 +02:00
Andrea Maria Piana
7a54d9b1c9
add unregister
2020-07-27 08:51:16 +02:00
Andrea Maria Piana
7bad800cb8
Add endpoints to enable/disable pns
2020-07-27 08:51:15 +02:00
Andrea Maria Piana
be1800f2ec
drive settings from client
2020-07-27 08:51:14 +02:00
Andrea Maria Piana
8130e5b402
Run registration loop when servers are not fully registered
2020-07-27 08:51:13 +02:00
Andrea Maria Piana
d2ab7f1bcd
refresh token only on revocation
2020-07-27 08:51:12 +02:00
Andrea Maria Piana
6f8c3025f3
Retrieve and add push notification registration
2020-07-27 08:51:11 +02:00
Andrea Maria Piana
e89e36b081
Use resend automatically for datasync
2020-07-27 08:51:10 +02:00
Andrea Maria Piana
c88df6c1c7
Handle messages sent to all devices
2020-07-27 08:51:09 +02:00
Andrea Maria Piana
7e8d1353d0
Create server identity on start if necessary
2020-07-27 08:51:08 +02:00
Andrea Maria Piana
3f4575b802
Add grant validation
2020-07-27 08:51:07 +02:00
Andrea Maria Piana
83e859c75f
add migrations
2020-07-27 08:51:06 +02:00
Andrea Maria Piana
20fb8607cb
keep track of queries & actually send pns, hurray
2020-07-27 08:51:05 +02:00
Andrea Maria Piana
1c379984cb
Handle registration with server
2020-07-27 08:51:04 +02:00
Andrea Maria Piana
7e16f940de
Handle query response
2020-07-27 08:51:03 +02:00
Andrea Maria Piana
7f6c8db6db
Handle push notification registration e2e
2020-07-27 08:51:02 +02:00
Andrea Maria Piana
d985af4a7e
Implement server persistence for client & basic tests
2020-07-27 08:51:01 +02:00
Andrea Maria Piana
3afde67022
Move message processor to common and allow subscribing to sent messages
2020-07-27 08:51:00 +02:00
Andrea Maria Piana
9da64ef251
add basic config
2020-07-27 08:50:59 +02:00
Andrea Maria Piana
15a3b710a0
Add parsing of messages
2020-07-27 08:50:58 +02:00
Andrea Maria Piana
927f762589
Send gorush notifications
2020-07-27 08:50:57 +02:00
Andrea Maria Piana
6ed7f705b9
validate token type
2020-07-27 08:50:56 +02:00
Andrea Maria Piana
52da9de0c6
Handle query from client
2020-07-27 08:50:56 +02:00
Andrea Maria Piana
2eee956dc6
Store hashes pk
2020-07-27 08:50:55 +02:00
Andrea Maria Piana
a15919527b
implement handle push notification registration
2020-07-27 08:50:54 +02:00
Andrea Maria Piana
91c7869d98
implement migrations & persistence for pns
2020-07-27 08:50:53 +02:00
Andrea Maria Piana
24df11bcf9
Pull push notification options from persistence
2020-07-27 08:50:52 +02:00
Andrea Maria Piana
eed0df3420
Return decrypted options on validation
2020-07-27 08:50:51 +02:00
Andrea Maria Piana
c5077609ee
remove push notification preferences
2020-07-27 08:50:50 +02:00
Andrea Maria Piana
f984a041df
decrypt push notification preferences
2020-07-27 08:50:49 +02:00
Andrea Maria Piana
e19c799be2
Remove PushNotificationRegister as we can use ApplicationMessage as a wrapper
2020-07-27 08:50:48 +02:00
Andrea Maria Piana
4ded7bf74c
Add skeleton for server and separate namespace for client
2020-07-27 08:50:48 +02:00