@@ -48,7 +48,7 @@ import Share.Utils.Postgres
4848import Share.Utils.URI (URIParam (.. ))
4949import Share.Web.Authorization.Types qualified as AuthZ
5050import Share.Web.Errors (EntityMissing (EntityMissing ), ErrorID (.. ), ToServerError (.. ))
51- import Share.Web.Share.DisplayInfo (UserDisplayInfo (.. ))
51+ import Share.Web.Share.DisplayInfo.Types (UserDisplayInfo ( .. ), UserLike (.. ))
5252
5353-- | Efficiently resolve User Display Info for UserIds within a structure.
5454userDisplayInfoOf :: (PG. QueryA m ) => Traversal s t UserId UserDisplayInfo -> s -> m t
@@ -274,20 +274,22 @@ findOrCreateGithubUser authZReceipt ghu@(GithubUser _login githubUserId _avatarU
274274 Nothing -> do
275275 New <$> createFromGithubUser authZReceipt ghu primaryEmail userHandle
276276
277- searchUsersByNameOrHandlePrefix :: Query -> Limit -> PG. Transaction e [(User , Maybe OrgId )]
277+ searchUsersByNameOrHandlePrefix :: Query -> Limit -> PG. Transaction e [(UserLike UserId Void OrgId )]
278278searchUsersByNameOrHandlePrefix (Query prefix) (Limit limit) = do
279279 let q = likeEscape prefix <> " %"
280- PG. queryListRows @ (User PG. :. ( PG. Only ( Maybe OrgId )) )
280+ PG. queryListRows @ (UserId , Maybe OrgId )
281281 [PG. sql |
282- SELECT u.id, u.name, u.primary_email, u.avatar_url, u.handle, u.private, org.id
282+ SELECT u.id, org.id
283283 FROM users u
284284 LEFT JOIN orgs org ON org.user_id = u.id
285285 WHERE (u.handle ILIKE #{q}
286286 OR u.name ILIKE #{q}
287287 ) AND NOT u.private
288288 LIMIT #{limit}
289289 |]
290- <&> fmap \ (user PG. :. PG. Only mayOrgId) -> (user, mayOrgId)
290+ <&> fmap \ (userId, mayOrgId) -> case mayOrgId of
291+ Just orgId -> UnifiedOrg orgId
292+ Nothing -> UnifiedUser userId
291293
292294data UserCreationError
293295 = UserHandleTaken UserHandle
0 commit comments