๐Ÿ‘ฉโ€๐Ÿš’ Firefighters API written in Gleam!
lustre gleam
at cff3ec04c43b7b467e9869883d231ca3f638e4fc 50 lines 1.2 kB view raw
1import argv 2import envoy 3import gleam/erlang/process 4import gleam/int 5import gleam/io 6import pog 7import server 8import server/context.{type Context, Context} 9import server/user 10import shared/role 11 12pub fn main() { 13 let db_process_name = process.new_name("db_conn") 14 let db = pog.named_connection(db_process_name) 15 16 let assert Ok(priv) = server.priv_directory() 17 let assert Ok(secret_key) = envoy.get("SECRET_KEY") 18 let assert Ok(pog_config) = server.read_connection_uri(db_process_name) 19 let assert Ok(_) = pog.start(pog_config) 20 21 let ctx = Context(db:, priv:, secret_key:) 22 23 case argv.load().arguments { 24 ["mock"] -> mock_data(ctx) 25 _ -> Nil 26 } 27} 28 29const max_users = 50 30 31fn mock_data(ctx: Context) { 32 int.range(1, max_users, with: Nil, run: fn(_, i) { 33 let id = int.to_string(i) 34 35 let assert Ok(_) = 36 user.register( 37 ctx:, 38 user_name: "user_" <> id, 39 user_role: role.None, 40 user_password: "password_" <> id, 41 user_email: "user_" <> id <> "@email.com", 42 user_phone: "phone_" <> id, 43 is_active: True, 44 ) 45 46 Nil 47 }) 48 49 io.println("๓ฐšฉ " <> int.to_string(max_users) <> " users generated") 50}