ggdgsdbsdbbb / activity.v
37 lines · 30 sloc · 737 bytes · a449238961bbd5f9081831ef9db1ac936909a3e8
Raw
1module main
2
3import time
4
5struct Activity {
6mut:
7 id int @[primary; sql: serial]
8 user_id int
9 name string
10 created_at time.Time
11}
12
13fn (app App) add_activity(user_id int, name string) ! {
14 activity := Activity{
15 user_id: user_id
16 name: name
17 created_at: time.now()
18 }
19
20 sql app.db {
21 insert activity into Activity
22 }!
23}
24
25fn (mut app App) find_activities(user_id int) []Activity {
26 return sql app.db {
27 select from Activity where user_id == user_id order by created_at desc
28 } or { []Activity{} }
29}
30
31fn (mut app App) has_activity(user_id int, name string) bool {
32 activity_count := sql app.db {
33 select count from Activity where user_id == user_id && name == name
34 } or { 0 }
35
36 return activity_count > 0
37}
38