wip: currently rewriting the project as a full stack application tangled.org/kacaii.dev/sigo
gleam
at main 68 lines 2.2 kB view raw
1//// This module contains the code to run the sql queries defined in 2//// `./src/app/domain/role/sql`. 3//// > 🐿️ This module was generated automatically using v4.6.0 of 4//// > the [squirrel package](https://github.com/giacomocavalieri/squirrel). 5//// 6 7import gleam/dynamic/decode 8import pog 9 10/// A row you get from running the `query_available_user_roles` query 11/// defined in `./src/app/domain/role/sql/query_available_user_roles.sql`. 12/// 13/// > 🐿️ This type definition was generated automatically using v4.6.0 of the 14/// > [squirrel package](https://github.com/giacomocavalieri/squirrel). 15/// 16pub type QueryAvailableUserRolesRow { 17 QueryAvailableUserRolesRow(available_role: UserRoleEnum) 18} 19 20///  Find all available user roles 21/// 22/// > 🐿️ This function was generated automatically using v4.6.0 of 23/// > the [squirrel package](https://github.com/giacomocavalieri/squirrel). 24/// 25pub fn query_available_user_roles( 26 db: pog.Connection, 27) -> Result(pog.Returned(QueryAvailableUserRolesRow), pog.QueryError) { 28 let decoder = { 29 use available_role <- decode.field(0, user_role_enum_decoder()) 30 decode.success(QueryAvailableUserRolesRow(available_role:)) 31 } 32 33 "--  Find all available user roles 34select unnest(enum_range(null::public.user_role_enum)) as available_role; 35" 36 |> pog.query 37 |> pog.returning(decoder) 38 |> pog.execute(db) 39} 40 41// --- Enums ------------------------------------------------------------------- 42 43/// Corresponds to the Postgres `user_role_enum` enum. 44/// 45/// > 🐿️ This type definition was generated automatically using v4.6.0 of the 46/// > [squirrel package](https://github.com/giacomocavalieri/squirrel). 47/// 48pub type UserRoleEnum { 49 Sargeant 50 Developer 51 Captain 52 Firefighter 53 Analyst 54 Admin 55} 56 57fn user_role_enum_decoder() -> decode.Decoder(UserRoleEnum) { 58 use user_role_enum <- decode.then(decode.string) 59 case user_role_enum { 60 "sargeant" -> decode.success(Sargeant) 61 "developer" -> decode.success(Developer) 62 "captain" -> decode.success(Captain) 63 "firefighter" -> decode.success(Firefighter) 64 "analyst" -> decode.success(Analyst) 65 "admin" -> decode.success(Admin) 66 _ -> decode.failure(Sargeant, "UserRoleEnum") 67 } 68}