this is shit nvm
commit
54d54f3b75
|
@ -0,0 +1,35 @@
|
|||
# DSL Idea
|
||||
|
||||
## How should it look?
|
||||
|
||||
```bash
|
||||
# User class
|
||||
# auto-handles `id`, `pwhash`, and 2FA
|
||||
schema User auth
|
||||
id int primary index
|
||||
name string required
|
||||
bio string required
|
||||
email email required
|
||||
created tzdate once`datetime.datetime.now()`
|
||||
|
||||
|
||||
# foreign key relations are specified with `@<key>`
|
||||
schema Friendship
|
||||
id int primary index
|
||||
u1_id int @user.id required
|
||||
u2_id int @user.id required
|
||||
|
||||
|
||||
# specify returned fields in brackets [field1 field2]
|
||||
endpoint /user/{uid}
|
||||
find User (id == uid) [name bio created]
|
||||
|
||||
|
||||
# * this is a auth-protected endpoint
|
||||
# * the `|` operator evaluates the next statement if the current one fails
|
||||
endpoint /friends auth
|
||||
find Friendship (u1id == auth.id or u2id == auth.id) one [u1id u2id] >>
|
||||
find User (id == u1id) one [name bio]
|
||||
| find User (id == u2id) one [name bio]
|
||||
```
|
||||
|
Loading…
Reference in New Issue