@@ -125,6 +125,7 @@ data EventType
125125 | ConvDelete
126126 | CollaboratorAdd
127127 | AppCreate
128+ | CollaboratorUpdate
128129 | CollaboratorRemove
129130 deriving stock (Eq , Show , Generic )
130131 deriving (Arbitrary ) via (GenericUniform EventType )
@@ -144,6 +145,7 @@ instance ToSchema EventType where
144145 element " team.conversation-delete" ConvDelete ,
145146 element " team.collaborator-add" CollaboratorAdd ,
146147 element " team.app-create" AppCreate ,
148+ element " team.collaborator-update" CollaboratorUpdate ,
147149 element " team.collaborator-remove" CollaboratorRemove
148150 ]
149151
@@ -161,6 +163,7 @@ data EventData
161163 | EdConvDelete ConvId
162164 | EdCollaboratorAdd UserId [CollaboratorPermission ]
163165 | EdAppCreate UserId
166+ | EdCollaboratorUpdate UserId [CollaboratorPermission ]
164167 | EdCollaboratorRemove UserId
165168 deriving stock (Eq , Show , Generic )
166169
@@ -192,6 +195,11 @@ instance ToJSON EventData where
192195 " permissions" A. .= perms
193196 ]
194197 toJSON (EdAppCreate usr) = A. object [" user" A. .= usr]
198+ toJSON (EdCollaboratorUpdate usr perms) =
199+ A. object
200+ [ " user" A. .= usr,
201+ " permissions" A. .= perms
202+ ]
195203 toJSON (EdCollaboratorRemove usr) = A. object [" user" A. .= usr]
196204
197205eventDataType :: EventData -> EventType
@@ -205,6 +213,7 @@ eventDataType (EdConvCreate _) = ConvCreate
205213eventDataType (EdConvDelete _) = ConvDelete
206214eventDataType (EdCollaboratorAdd _ _) = CollaboratorAdd
207215eventDataType (EdAppCreate _) = AppCreate
216+ eventDataType (EdCollaboratorUpdate _ _) = CollaboratorUpdate
208217eventDataType (EdCollaboratorRemove _) = CollaboratorRemove
209218
210219parseEventData :: EventType -> Maybe Value -> Parser EventData
@@ -232,15 +241,19 @@ parseEventData TeamCreate Nothing = fail "missing event data for type 'team.crea
232241parseEventData TeamCreate (Just j) = EdTeamCreate <$> parseJSON j
233242parseEventData TeamUpdate Nothing = fail " missing event data for type 'team.update'"
234243parseEventData TeamUpdate (Just j) = EdTeamUpdate <$> parseJSON j
235- parseEventData CollaboratorAdd Nothing = fail " missing event data for type 'team.collaborator-add"
244+ parseEventData CollaboratorAdd Nothing = fail " missing event data for type 'team.collaborator-add' "
236245parseEventData CollaboratorAdd (Just j) = do
237246 let f o = EdCollaboratorAdd <$> o .: " user" <*> o .: " permissions"
238247 withObject " collaborator add data" f j
239248parseEventData AppCreate Nothing = fail " missing event data for type 'team.app-create'"
240249parseEventData AppCreate (Just j) = do
241250 let f o = EdAppCreate <$> o .: " user"
242251 withObject " app create data" f j
243- parseEventData CollaboratorRemove Nothing = fail " missing event data for type 'team.collaborator-remove"
252+ parseEventData CollaboratorUpdate Nothing = fail " missing event data for type 'team.collaborator-update'"
253+ parseEventData CollaboratorUpdate (Just j) = do
254+ let f o = EdCollaboratorUpdate <$> o .: " user" <*> o .: " permissions"
255+ withObject " collaborator update data" f j
256+ parseEventData CollaboratorRemove Nothing = fail " missing event data for type 'team.collaborator-remove'"
244257parseEventData CollaboratorRemove (Just j) = do
245258 let f o = EdCollaboratorRemove <$> o .: " user"
246259 withObject " collaborator remove data" f j
@@ -259,6 +272,7 @@ genEventData = \case
259272 ConvDelete -> EdConvDelete <$> arbitrary
260273 CollaboratorAdd -> EdCollaboratorAdd <$> arbitrary <*> arbitrary
261274 AppCreate -> EdAppCreate <$> arbitrary
275+ CollaboratorUpdate -> EdCollaboratorUpdate <$> arbitrary <*> arbitrary
262276 CollaboratorRemove -> EdCollaboratorRemove <$> arbitrary
263277
264278makeLenses ''Event
0 commit comments