diff --git a/server/src/server/user/autocomplete.gleam b/server/src/server/user/autocomplete.gleam index 73a6eb2..9722acb 100644 --- a/server/src/server/user/autocomplete.gleam +++ b/server/src/server/user/autocomplete.gleam @@ -9,12 +9,13 @@ import server/user import shared/user as shared_user import wisp.{type Request, type Response} +/// Query parsing failed type QueryParseError { - /// Missing `q` param + /// Missing `q=` param InvalidQuery - /// Missing `value` param + /// Missing `value=` param InvalidValue - /// Missing `limit` param + /// Missing `limit=` param InvalidLimit } @@ -67,7 +68,7 @@ fn query_by_email(ctx: Context, value: String, limit: Int) { fn parse_query(req: Request) -> Result(QueryParams, QueryParseError) { let pairs = wisp.get_query(req) - use query <- result.try(case list.key_find(pairs, "q") { + use kind <- result.try(case list.key_find(pairs, "q") { Ok("email") -> Ok(Email) Ok("name") -> Ok(Name) _ -> Error(InvalidQuery) @@ -83,7 +84,7 @@ fn parse_query(req: Request) -> Result(QueryParams, QueryParseError) { Error(_) -> Error(InvalidLimit) }) - case query { + case kind { Email -> EmailQuery(value:, limit:) Name -> NameQuery(value:, limit:) }