๐ฉโ๐ Firefighters API written in Gleam!
lustre
gleam
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() -> Nil {
13 let db_process_name = process.new_name("db_conn")
14 let db = pog.named_connection(db_process_name)
15
16 let assert Ok(static_directory) = server.static_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:, static_directory:, secret_key:)
22
23 case argv.load().arguments {
24 ["sow"] -> sow_users(ctx)
25
26 _ -> Nil
27 }
28}
29
30fn sow_users(ctx: Context) -> Nil {
31 let max_users = 50
32
33 int.range(1, max_users, with: Nil, run: fn(_, i) {
34 let id = int.to_string(i)
35
36 let assert Ok(_) =
37 user.register(
38 ctx:,
39 user_name: "user_" <> id,
40 user_role: role.None,
41 user_password: "password_" <> id,
42 user_email: "user_" <> id <> "@email.com",
43 user_phone: "phone_" <> id,
44 is_active: True,
45 )
46
47 Nil
48 })
49
50 io.println("๓ฑข " <> int.to_string(max_users) <> " users generated")
51}