Commit Graph

206 Commits

Author SHA1 Message Date
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
Andrea Maria Piana 92b699b59d
Add push notification register message 2020-07-27 08:50:47 +02:00
Andrea Maria Piana c4fa9825a9
Mute chat 2020-07-27 08:50:46 +02:00
Andrea Maria Piana 4720224ba2 expose getContactByID method 2020-06-17 12:24:58 +02:00
Andrea Maria Piana 20f45a7c1c Create different index for filtering
The index for message was fairly inefficient as it was only using the
cursor, as it was referring to the old `chat_id` field.

This meant that newer messages would be fetched much faster then older
messages.

The index has been changed so that now it includes `local_chat_id`
(which is currently used for filtering), and not using `hide`.

The reason being is that `hide` is a low cardinality index, so there's
no performance benefit to have it in, also it's mostly ignored by the
query planner.

This commit also adds the missing migrations, we generated the file, but
the source was missing, probably I forgot to add them in a rebase. They
have been generated from the migration file, using `RestoreAsset`.
2020-06-08 10:02:31 +02:00
Samuel Hawksby-Robinson 88f4f75ae1
Added basic history of the protocol package (#1984)
'm trying to add more documentation to parts of the repo that I go into.

I feel this basic history will make it easier to understand why the protocol package is as big as it is compared to the other packages in the repo, and help in understanding its existence.
2020-06-04 11:23:09 +01:00
Andrea Maria Piana 0bffeab908 Address feedback from code review and add quoted image 2020-06-01 11:30:04 +02:00
Andrea Maria Piana 2d17c40631 Refactor *Raw methods in message_processor.go
We used *Raw method in message_processor as before we had non-Raw method
during the transition from status-react to status-go. This naming is not
meaningful anymore, so I have changed it.
2020-06-01 11:30:04 +02:00