Skip to content

Commit

Permalink
Introduces qualified users in NewConv
Browse files Browse the repository at this point in the history
- Checks if remote users exist
- Adds remote users to the database
- Adds integration tests for qualified users
- Updates golden tests related to NewConv
  • Loading branch information
mdimjasevic committed Jun 3, 2021
1 parent dcc4e60 commit 176bfc3
Show file tree
Hide file tree
Showing 59 changed files with 419 additions and 137 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,6 @@ createConv users name = sessionRequest req rsc readBody
method POST
. path "conversations"
. acceptJson
. json (NewConvUnmanaged (NewConv users name mempty Nothing Nothing Nothing Nothing roleNameWireAdmin))
. json (NewConvUnmanaged (NewConv users [] name mempty Nothing Nothing Nothing Nothing roleNameWireAdmin))
$ empty
rsc = status201 :| []
17 changes: 16 additions & 1 deletion libs/wire-api/src/Wire/API/Conversation.hs
Original file line number Diff line number Diff line change
Expand Up @@ -384,6 +384,8 @@ modelNewConversation = Doc.defineModel "NewConversation" $ do
Doc.description "JSON object to create a new conversation"
Doc.property "users" (Doc.unique $ Doc.array Doc.bytes') $
Doc.description "List of user IDs (excluding the requestor) to be part of this conversation"
Doc.property "qualified_users" (Doc.unique . Doc.array $ Doc.bytes') $
Doc.description "List of qualified user IDs to be part of this conversation"
Doc.property "name" Doc.string' $ do
Doc.description "The conversation name"
Doc.optional
Expand Down Expand Up @@ -414,6 +416,9 @@ instance Arbitrary NewConvUnmanaged where

data NewConv = NewConv
{ newConvUsers :: [UserId],
-- | A list of qualified users, which can include some local qualified users
-- too.
newConvQualifiedUsers :: [Qualified UserId],
newConvName :: Maybe Text,
newConvAccess :: Set Access,
newConvAccessRole :: Maybe AccessRole,
Expand All @@ -437,6 +442,13 @@ newConvSchema =
"users"
(description ?~ usersDesc)
(array schema)
<*> newConvQualifiedUsers
.= ( fieldWithDocModifier
"qualified_users"
(description ?~ qualifiedUsersDesc)
(array schema)
<|> pure []
)
<*> newConvName .= opt (field "name" schema)
<*> (Set.toList . newConvAccess)
.= ( field "access" (Set.fromList <$> array schema)
Expand Down Expand Up @@ -465,7 +477,10 @@ newConvSchema =
where
usersDesc =
"List of user IDs (excluding the requestor) to be \
\part of this conversation"
\part of this conversation (deprecated)"
qualifiedUsersDesc =
"List of qualified user IDs (excluding the requestor) \
\to be part of this conversation"

newConvIsManaged :: NewConv -> Bool
newConvIsManaged = maybe False cnvManaged . newConvTeam
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,6 @@
"teamid": "00000001-0000-0001-0000-000200000000"
},
"receipt_mode": 4,
"message_timer": 193643728192048
"message_timer": 193643728192048,
"qualified_users": []
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,6 @@
"teamid": "00000001-0000-0001-0000-000000000001"
},
"receipt_mode": 1,
"message_timer": 8061252799624904
"message_timer": 8061252799624904,
"qualified_users": []
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,6 @@
"teamid": "00000001-0000-0000-0000-000200000001"
},
"receipt_mode": -2,
"message_timer": 6292627004994884
"message_timer": 6292627004994884,
"qualified_users": []
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,6 @@
"managed": true,
"teamid": "00000000-0000-0001-0000-000100000000"
},
"message_timer": 7043412511612101
"message_timer": 7043412511612101,
"qualified_users": []
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,6 @@
"managed": true,
"teamid": "00000000-0000-0001-0000-000100000001"
},
"receipt_mode": 0
"receipt_mode": 0,
"qualified_users": []
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,6 @@
"managed": true,
"teamid": "00000001-0000-0001-0000-000000000000"
},
"message_timer": 8669416711689656
"message_timer": 8669416711689656,
"qualified_users": []
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,6 @@
"teamid": "00000001-0000-0001-0000-000000000000"
},
"receipt_mode": 2,
"message_timer": 1166285470102499
"message_timer": 1166285470102499,
"qualified_users": []
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,6 @@
"managed": true,
"teamid": "00000002-0000-0001-0000-000000000001"
},
"message_timer": 4425819976591162
"message_timer": 4425819976591162,
"qualified_users": []
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,6 @@
"managed": true,
"teamid": "00000000-0000-0000-0000-000000000000"
},
"message_timer": 5065871950676797
"message_timer": 5065871950676797,
"qualified_users": []
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,6 @@
"managed": true,
"teamid": "00000001-0000-0000-0000-000100000001"
},
"receipt_mode": -1
"receipt_mode": -1,
"qualified_users": []
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,6 @@
"managed": true,
"teamid": "00000001-0000-0000-0000-000100000001"
},
"message_timer": 8428756728484885
"message_timer": 8428756728484885,
"qualified_users": []
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,11 @@
"managed": true,
"teamid": "00000002-0000-0002-0000-000200000002"
},
"message_timer": 5509522199847054
"message_timer": 5509522199847054,
"qualified_users": [
{
"domain": "test.example.com",
"id": "00000000-0000-0000-0000-000100000001"
}
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,6 @@
"managed": true,
"teamid": "00000000-0000-0000-0000-000000000001"
},
"message_timer": 6168723896440273
"message_timer": 6168723896440273,
"qualified_users": []
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,11 @@
"teamid": "00000001-0000-0001-0000-000000000000"
},
"receipt_mode": 2,
"message_timer": 582808797322573
"message_timer": 582808797322573,
"qualified_users": [
{
"domain": "test.example.com",
"id": "00000000-0000-0000-0000-000100000001"
}
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,6 @@
"team": {
"managed": true,
"teamid": "00000001-0000-0001-0000-000100000002"
}
},
"qualified_users": []
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,6 @@
"teamid": "00000001-0000-0000-0000-000100000000"
},
"receipt_mode": -1,
"message_timer": 1570858821505994
"message_timer": 1570858821505994,
"qualified_users": []
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,6 @@
"managed": true,
"teamid": "00000000-0000-0000-0000-000000000001"
},
"message_timer": 6614365418177275
"message_timer": 6614365418177275,
"qualified_users": []
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,6 @@
"teamid": "00000001-0000-0001-0000-000100000000"
},
"receipt_mode": 0,
"message_timer": 7417375067718994
"message_timer": 7417375067718994,
"qualified_users": []
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,6 @@
"managed": true,
"teamid": "00000001-0000-0000-0000-000100000001"
},
"receipt_mode": 2
"receipt_mode": 2,
"qualified_users": []
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,6 @@
"teamid": "00000001-0000-0000-0000-000000000000"
},
"receipt_mode": 1,
"message_timer": 2550845209410146
"message_timer": 2550845209410146,
"qualified_users": []
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,6 @@
"teamid": "00000000-0000-0001-0000-000000000000"
},
"receipt_mode": 1,
"message_timer": 3320987366258987
"message_timer": 3320987366258987,
"qualified_users": []
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,6 @@
"conversation_role": "30mnzwj79jo9ear300qs4k_x2262nyaqxt9qga1_zaqmto43q2935t4dzaan_qnlstgjix7efmqfljkpww2lz",
"name": "",
"receipt_mode": 2,
"message_timer": 5041503034744095
"message_timer": 5041503034744095,
"qualified_users": []
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,6 @@
"teamid": "00000000-0000-0000-0000-000000000000"
},
"receipt_mode": 1,
"message_timer": 6019134025424754
"message_timer": 6019134025424754,
"qualified_users": []
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,6 @@
"users": [],
"conversation_role": "wqhaeljk9zpp5nmspwl",
"name": ">+",
"receipt_mode": 1
"receipt_mode": 1,
"qualified_users": []
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,6 @@
"teamid": "00000000-0000-0000-0000-000000000001"
},
"receipt_mode": -2,
"message_timer": 211460552735402
"message_timer": 211460552735402,
"qualified_users": []
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,6 @@
"conversation_role": "fga_hfm9uzn_5z883y6r_kumb",
"name": "",
"receipt_mode": -2,
"message_timer": 854777662274030
"message_timer": 854777662274030,
"qualified_users": []
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,6 @@
"teamid": "00000001-0000-0001-0000-000200000002"
},
"receipt_mode": 1,
"message_timer": 4005602882980532
"message_timer": 4005602882980532,
"qualified_users": []
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,6 @@
"managed": false,
"teamid": "00000000-0000-0001-0000-000100000000"
},
"receipt_mode": 1
"receipt_mode": 1,
"qualified_users": []
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,6 @@
"teamid": "00000000-0000-0001-0000-000100000001"
},
"receipt_mode": 0,
"message_timer": 880163555151907
"message_timer": 880163555151907,
"qualified_users": []
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,6 @@
"conversation_role": "ugehcdyu_ob9_woawlths95ez8cgtb6wjqypp7vbjaooiczerb5zpc6srxszgkrdu8l24ygz_",
"name": "sd\u0006",
"receipt_mode": -2,
"message_timer": 3120553871655858
"message_timer": 3120553871655858,
"qualified_users": []
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,6 @@
"conversation_role": "xik7vc3wp82gw4r934rad_bhmf2orany3qgu_tx9huwfrlxy8m0id71x20uddebps30zdahe_ffcxxhc",
"name": "Cu\u0011",
"receipt_mode": -1,
"message_timer": 864918593306344
"message_timer": 864918593306344,
"qualified_users": []
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,11 @@
"teamid": "00000000-0000-0001-0000-000000000001"
},
"receipt_mode": -1,
"message_timer": 2406292360203739
"message_timer": 2406292360203739,
"qualified_users": [
{
"domain": "testdomain.example.com",
"id": "00000000-0000-0000-0000-000100000001"
}
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,6 @@
"conversation_role": "udhi2sbf7tzyshrh",
"name": "\u000f􅚶",
"receipt_mode": -1,
"message_timer": 3641984282941906
"message_timer": 3641984282941906,
"qualified_users": []
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,6 @@
"teamid": "00000000-0000-0001-0000-000000000001"
},
"receipt_mode": 0,
"message_timer": 6764297310186120
"message_timer": 6764297310186120,
"qualified_users": []
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,6 @@
"managed": false,
"teamid": "00000000-0000-0001-0000-000000000000"
},
"receipt_mode": -2
"receipt_mode": -2,
"qualified_users": []
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,6 @@
"team": {
"managed": false,
"teamid": "00000001-0000-0001-0000-000100000000"
}
},
"qualified_users": []
}
Loading

0 comments on commit 176bfc3

Please sign in to comment.