๐ฉโ๐ 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() {
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}