@@ -32,15 +32,13 @@ module Galley.Types.Teams
3232 , userId
3333 , permissions
3434 , invitation
35- , teamMemberJson
3635
3736 , TeamMemberList
3837 , notTeamMember
3938 , findTeamMember
4039 , isTeamMember
4140 , newTeamMemberList
4241 , teamMembers
43- , teamMemberListJson
4442
4543 , TeamConversation
4644 , newTeamConversation
@@ -186,7 +184,7 @@ data EventData =
186184 | EdTeamUpdate TeamUpdateData
187185 | EdMemberJoin UserId
188186 | EdMemberLeave UserId
189- | EdMemberUpdate UserId ( Maybe Permissions )
187+ | EdMemberUpdate UserId Permissions
190188 | EdConvCreate ConvId
191189 | EdConvDelete ConvId
192190 deriving (Eq , Show )
@@ -488,14 +486,15 @@ instance FromJSON TeamList where
488486 TeamList <$> o .: " teams"
489487 <*> o .: " has_more"
490488
491- teamMemberJson :: Bool -> TeamMember -> Value
492- teamMemberJson withPerms m = object $
493- [ " user" .= _userId m ] <>
494- [ " permissions" .= _permissions m | withPerms ] <>
495- (maybe [] (\ inv -> [" invited" .= invJson inv]) (_invitation m))
496- where
497- invJson :: (UserId , UTCTimeMillis ) -> Value
498- invJson (by, at) = object [ " by" .= by, " at" .= at ]
489+ instance ToJSON TeamMember where
490+ toJSON m = object $
491+ [ " user" .= _userId m
492+ , " permissions" .= _permissions m
493+ ] <>
494+ (maybe [] (\ inv -> [" invited" .= invJson inv]) (_invitation m))
495+ where
496+ invJson :: (UserId , UTCTimeMillis ) -> Value
497+ invJson (by, at) = object [ " by" .= by, " at" .= at ]
499498
500499parseTeamMember :: Value -> Parser TeamMember
501500parseTeamMember = withObject " team-member" $ \ o ->
@@ -509,9 +508,8 @@ parseTeamMember = withObject "team-member" $ \o ->
509508 parseInv' = withObject " team-member invitation metadata" $ \ o ->
510509 (,) <$> (o .: " by" ) <*> (o .: " at" )
511510
512- teamMemberListJson :: Bool -> TeamMemberList -> Value
513- teamMemberListJson withPerm l =
514- object [ " members" .= map (teamMemberJson withPerm) (_teamMembers l) ]
511+ instance ToJSON TeamMemberList where
512+ toJSON l = object [ " members" .= _teamMembers l ]
515513
516514instance FromJSON TeamMember where
517515 parseJSON = parseTeamMember
@@ -578,14 +576,14 @@ instance ToJSON BindingNewTeam where
578576instance ToJSON NonBindingNewTeam where
579577 toJSON (NonBindingNewTeam t) =
580578 object
581- $ " members" .= (map (teamMemberJson True ) . fromRange <$> _newTeamMembers t)
579+ $ " members" .= (fromRange <$> _newTeamMembers t)
582580 # newTeamJson t
583581
584582deriving instance FromJSON BindingNewTeam
585583deriving instance FromJSON NonBindingNewTeam
586584
587585instance ToJSON NewTeamMember where
588- toJSON t = object [" member" .= teamMemberJson True (_ntmNewTeamMember t)]
586+ toJSON t = object [" member" .= (_ntmNewTeamMember t)]
589587
590588instance FromJSON NewTeamMember where
591589 parseJSON = withObject " add team member" $ \ o ->
@@ -634,8 +632,8 @@ instance FromJSON Event where
634632instance ToJSON EventData where
635633 toJSON (EdTeamCreate tem) = toJSON tem
636634 toJSON (EdMemberJoin usr) = object [" user" .= usr]
637- toJSON (EdMemberUpdate usr mPerm) = object $ " user" .= usr
638- # " permissions" .= mPerm
635+ toJSON (EdMemberUpdate usr perm) = object $ " user" .= usr
636+ # " permissions" .= perm
639637 # []
640638 toJSON (EdMemberLeave usr) = object [" user" .= usr]
641639 toJSON (EdConvCreate cnv) = object [" conv" .= cnv]
@@ -650,7 +648,7 @@ parseEventData MemberJoin (Just j) = do
650648
651649parseEventData MemberUpdate Nothing = fail " missing event data for type 'team.member-update"
652650parseEventData MemberUpdate (Just j) = do
653- let f o = Just <$> (EdMemberUpdate <$> o .: " user" <*> o .:? " permissions" )
651+ let f o = Just <$> (EdMemberUpdate <$> o .: " user" <*> o .: " permissions" )
654652 withObject " member update data" f j
655653
656654parseEventData MemberLeave Nothing = fail " missing event data for type 'team.member-leave'"
0 commit comments