Skip to content

Commit 647fa27

Browse files
Refactor: expose typed Taskly RPC contracts
1 parent f429cff commit 647fa27

1 file changed

Lines changed: 20 additions & 20 deletions

File tree

‎racket/taskly/backend.rkt‎

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
(require rivet/backend
44
"model.rkt"
5-
"service.rkt"
6-
"wire.rkt")
5+
"rivet-schema.rkt"
6+
"service.rkt")
77

88
(provide start)
99

@@ -18,30 +18,30 @@
1818
(error 'taskly "database is not open")))
1919

2020
(define (publish! service)
21-
(changed (snapshot->wire service)))
21+
(changed (snapshot->dto service)))
2222

23-
(define-rpc (open_database [path : String] : Any)
23+
(define-rpc (open_database [path : String] : Snapshot)
2424
(define previous (unbox current-service))
2525
(when previous (close-taskly-service previous))
2626
(define service (open-taskly-service path))
2727
(set-box! current-service service)
28-
(snapshot->wire service))
28+
(snapshot->dto service))
2929

3030
(define-rpc (load_snapshot [view : String]
3131
[list-id : (Optional Int64)]
3232
[show-completed : Bool]
33-
: Any)
34-
(snapshot->wire (require-service)
35-
#:view view
36-
#:list-id (optional->false list-id)
37-
#:show-completed show-completed))
33+
: Snapshot)
34+
(snapshot->dto (require-service)
35+
#:view view
36+
#:list-id (optional->false list-id)
37+
#:show-completed show-completed))
3838

3939
(define-rpc (add_task [text : String]
4040
[list-id : (Optional Int64)]
4141
[due-date : (Optional String)]
4242
[due-time : (Optional String)]
4343
[notes : (Optional String)]
44-
: Any)
44+
: Task)
4545
(define service (require-service))
4646
(define task
4747
(service-add-task! service text
@@ -50,40 +50,40 @@
5050
#:due-time (optional->false due-time)
5151
#:notes (optional->false notes)))
5252
(publish! service)
53-
(task->wire task))
53+
(task->dto task))
5454

55-
(define-rpc (update_task_text [id : Int64] [text : String] : Any)
55+
(define-rpc (update_task_text [id : Int64] [text : String] : Task)
5656
(define service (require-service))
5757
(define task (service-update-task-text! service id text))
5858
(publish! service)
59-
(task->wire task))
59+
(task->dto task))
6060

61-
(define-rpc (set_completed [id : Int64] [completed : Bool] : Any)
61+
(define-rpc (set_completed [id : Int64] [completed : Bool] : Task)
6262
(define service (require-service))
6363
(define task (service-set-completed! service id completed))
6464
(publish! service)
65-
(task->wire task))
65+
(task->dto task))
6666

6767
(define-rpc (delete_task [id : Int64] : Bool)
6868
(define service (require-service))
6969
(define deleted? (service-delete-task! service id))
7070
(when deleted? (publish! service))
7171
deleted?)
7272

73-
(define-rpc (search_tasks [keyword : String] : Any)
74-
(map task->wire (service-search (require-service) keyword)))
73+
(define-rpc (search_tasks [keyword : String] : (List Task))
74+
(map task->dto (service-search (require-service) keyword)))
7575

7676
(define-rpc (create_list [name : String]
7777
[icon : (Optional String)]
7878
[color : (Optional Int64)]
79-
: Any)
79+
: TodoList)
8080
(define service (require-service))
8181
(define item
8282
(service-add-list! service name
8383
#:icon (or (optional->false icon) default-list-icon)
8484
#:color (or (optional->false color) default-list-color)))
8585
(publish! service)
86-
(list->wire item))
86+
(list->dto item))
8787

8888
(define-rpc (delete_list [id : Int64] : Bool)
8989
(define service (require-service))

0 commit comments

Comments
 (0)