From f66aba1c416f45cbe0a4104139e6e1589eba7c0b Mon Sep 17 00:00:00 2001 From: Philippe Pittoli Date: Sat, 27 May 2023 13:35:44 +0200 Subject: [PATCH] Received messages codecs are okay-ish (some properties are missing in UserPublic module). --- src/App/Messages/AuthenticationDaemon.purs | 38 ++++++++++++---------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/src/App/Messages/AuthenticationDaemon.purs b/src/App/Messages/AuthenticationDaemon.purs index 73aa96c..a40e0e9 100644 --- a/src/App/Messages/AuthenticationDaemon.purs +++ b/src/App/Messages/AuthenticationDaemon.purs @@ -50,7 +50,6 @@ import App.IPC as IPC -- Deletion can be triggered by either an admin or the user. Possible answers: - - 11 type MatchingUsers = { users :: Array(UserPublic.UserPublic) } -} -- Basic message types. @@ -67,6 +66,7 @@ type PermissionSet = { user :: Int, service :: String, resource :: String type PasswordRecoverySent = { user :: UserPublic.UserPublic } type PasswordRecovered = { user :: UserPublic.UserPublic } type Contacts = { user :: Int, email :: Maybe Email.Email, phone :: Maybe Phone.Phone } +type MatchingUsers = { users :: Array UserPublic.UserPublic } type Password = String type GetToken = { login :: String, password :: String } @@ -91,8 +91,8 @@ codecGotUserValidated ∷ CA.JsonCodec UserValidated codecGotUserValidated = CA.object "UserValidated" (CAR.record { user: UserPublic.codec }) codecGotPasswordRecovered ∷ CA.JsonCodec PasswordRecovered codecGotPasswordRecovered = CA.object "PasswordRecovered" (CAR.record { user: UserPublic.codec }) --- codecGotUsersList ∷ CA.JsonCodec UsersList --- codecGotUsersList = CA.object "UsersList" (CAR.record { users: TODO }) +codecGotUsersList ∷ CA.JsonCodec UsersList +codecGotUsersList = CA.object "UsersList" (CAR.record { users: CA.array UserPublic.codec }) codecGotPermissionCheck :: CA.JsonCodec PermissionCheck codecGotPermissionCheck = CA.object "PermissionCheck" (CAR.record { user: CA.int , service: CA.string @@ -107,6 +107,8 @@ codecGotContacts ∷ CA.JsonCodec Contacts codecGotContacts = CA.object "Contacts" (CAR.record { user: CA.int , email: CAR.optional Email.codec , phone: CAR.optional Phone.codec }) +codecGotMatchingUsers ∷ CA.JsonCodec MatchingUsers +codecGotMatchingUsers = CA.object "MatchingUsers" (CAR.record { users: CA.array UserPublic.codec }) -- All possible requests. data RequestMessage @@ -131,19 +133,19 @@ data RequestMessage -- All possible answers from the authentication daemon (authd). data AnswerMessage - = GotError Error -- 0 - | GotToken Token -- 1 - | GotUser User -- 2 - | GotUserAdded UserAdded -- 3 - | GotUserEdited UserEdited -- 4 - | GotUserValidated UserValidated -- 5 - -- | GotUsersList UsersList -- 6 - | GotPermissionCheck PermissionCheck -- 7 - | GotPermissionSet PermissionSet -- 8 - | GotPasswordRecoverySent PasswordRecoverySent -- 9 - | GotPasswordRecovered PasswordRecovered -- 10 - -- | GotMatchingUsers MatchingUsers -- 11 - | GotContacts Contacts -- 12 + = GotError Error -- 0 + | GotToken Token -- 1 + | GotUser User -- 2 + | GotUserAdded UserAdded -- 3 + | GotUserEdited UserEdited -- 4 + | GotUserValidated UserValidated -- 5 + | GotUsersList UsersList -- 6 + | GotPermissionCheck PermissionCheck -- 7 + | GotPermissionSet PermissionSet -- 8 + | GotPasswordRecoverySent PasswordRecoverySent -- 9 + | GotPasswordRecovered PasswordRecovered -- 10 + | GotMatchingUsers MatchingUsers -- 11 + | GotContacts Contacts -- 12 encode ∷ RequestMessage -> Tuple UInt String encode m = case m of @@ -180,12 +182,12 @@ decode number string 3 -> error_management codecGotUserAdded GotUserAdded 4 -> error_management codecGotUserEdited GotUserEdited 5 -> error_management codecGotUserValidated GotUserValidated - -- 6 type UsersList = { users :: Array(UserPublic.UserPublic) } + 6 -> error_management codecGotUsersList GotUsersList 7 -> error_management codecGotPermissionCheck GotPermissionCheck 8 -> error_management codecGotPermissionSet GotPermissionSet 9 -> error_management codecGotPasswordRecoverySent GotPasswordRecoverySent 10 -> error_management codecGotPasswordRecovered GotPasswordRecovered - -- 11 type MatchingUsers = { users :: Array(UserPublic.UserPublic) } + 11 -> error_management codecGotMatchingUsers GotMatchingUsers 12 -> error_management codecGotContacts GotContacts _ -> Left UnknownNumber where