-
Notifications
You must be signed in to change notification settings - Fork 1
/
main.wasp
104 lines (91 loc) · 2.18 KB
/
main.wasp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
app greetingCardGenerator {
wasp: {
version: "^0.13.2"
},
title: "Lazy Greeting Cards",
client: {
rootComponent: import { App } from "@src/App"
},
auth: {
userEntity: User,
methods: {
google: {
userSignupFields: import { googleSignupFields } from "@src/auth",
configFn: import { getGoogleConfig } from "@src/auth"
}
},
onAuthFailedRedirectTo: "/"
},
db: {
system: PostgreSQL
}
}
route RootRoute { path: "/", to: MainPage }
page MainPage {
component: import { MainPage } from "@src/pages/MainPage"
}
route GreetingCardRoute { path: "/greeting-card/:id", to: GreetingCardPage }
page GreetingCardPage {
component: import { GreetingCardPage } from "@src/pages/GreetingCard"
}
entity User {=psl
id String @id @default(cuid())
name String
email String @unique
avatar String
greetingCards GreetingCard[]
psl=}
entity GreetingCard {=psl
id String @id @default(cuid())
prompt String
status String @default("pending")
poem String?
imagePrompt String?
imageUrl String?
imageAverageColor String?
createdAt DateTime @default(now())
user User @relation(fields: [userId], references: [id])
userId String
psl=}
action createGreetingCard {
fn: import { createGreetingCard } from "@src/cards/index",
entities: [GreetingCard]
}
query getMyGreetingCards {
fn: import { getMyGreetingCards } from "@src/cards/index",
entities: [GreetingCard]
}
query getGreetingCard {
fn: import { getGreetingCard } from "@src/cards/index",
entities: [GreetingCard]
}
job generateGreetingCardPoem {
executor: PgBoss,
perform: {
fn: import { generateGreetingCardPoem } from "@src/cards/index"
},
entities: [GreetingCard],
schedule: {
cron: "* * * * *" // every minute
}
}
job generateGreetingCardImage {
executor: PgBoss,
perform: {
fn: import { generateGreetingCardImage } from "@src/cards/index"
},
entities: [GreetingCard],
schedule: {
cron: "* * * * *" // every minute
}
}
job cleanUpStaleGreetingCards {
executor: PgBoss,
perform: {
fn: import { cleanUpStaleGreetingCards } from "@src/cards/index"
},
entities: [GreetingCard],
schedule: {
cron: "* * * * *" // every minute
}
}