···88import pog
99import youid/uuid.{type Uuid}
10101111+/// A row you get from running the `assign_members` query
1212+/// defined in `./src/server/crew/sql/assign_members.sql`.
1313+///
1414+/// > ๐ฟ๏ธ This type definition was generated automatically using v4.6.0 of the
1515+/// > [squirrel package](https://github.com/giacomocavalieri/squirrel).
1616+///
1717+pub type AssignMembersRow {
1818+ AssignMembersRow(user_id: Uuid)
1919+}
2020+1121/// Runs the `assign_members` query
1222/// defined in `./src/server/crew/sql/assign_members.sql`.
1323///
···1828 db: pog.Connection,
1929 arg_1: Uuid,
2030 arg_2: List(Uuid),
2121-) -> Result(pog.Returned(Nil), pog.QueryError) {
2222- let decoder = decode.map(decode.dynamic, fn(_) { Nil })
3131+) -> Result(pog.Returned(AssignMembersRow), pog.QueryError) {
3232+ let decoder = {
3333+ use user_id <- decode.field(0, uuid_decoder())
3434+ decode.success(AssignMembersRow(user_id:))
3535+ }
23362424- "insert into crew_membership (
3737+ "insert into crew_membership as cm (
2538 crew_id,
2639 user_id
2740)
28412929-values ($1, unnest($2::uuid []));
4242+values ($1, unnest($2::uuid []))
4343+on conflict do nothing
4444+returning cm.user_id;
3045"
3146 |> pog.query
3247 |> pog.parameter(pog.text(uuid.to_string(arg_1)))
3333- |> pog.parameter(pog.array(
3434- fn(value) { pog.text(uuid.to_string(value)) },
3535- arg_2,
3636- ))
4848+ |> pog.parameter(
4949+ pog.array(fn(value) { pog.text(uuid.to_string(value)) }, arg_2),
5050+ )
3751 |> pog.returning(decoder)
3852 |> pog.execute(db)
3953}
+3-2
server/src/server/crew/sql/assign_members.sql
···11-insert into crew_membership (
11+insert into crew_membership as cm (
22 crew_id,
33 user_id
44)
5566values ($1, unnest($2::uuid []))
77-on conflict do nothing;
77+on conflict do nothing
88+returning cm.user_id;