#lang typed/racket (require typed/db) (module untyped-db-ops racket (require db db/util/datetime "../entities/article.rkt") (provide fetch-tag-ids insert-tag) (define (fetch-tag-ids conn) (for/hash ([(name tag-id) (in-query conn "SELECT name, tag_id FROM diary.tags")]) (values name tag-id))) (define (insert-tag conn name) (query-value conn " INSERT INTO diary.tags(name) VALUES($1) RETURNING tag_id " name))) (require/typed/provide (submod "." untyped-db-ops) [fetch-tag-ids (-> Connection (Immutable-HashTable String Integer))] [insert-tag (-> Connection String Integer)])