Skip to content

Commit

Permalink
bump
Browse files Browse the repository at this point in the history
  • Loading branch information
macielti committed Dec 3, 2024
1 parent 964ca03 commit dacd041
Show file tree
Hide file tree
Showing 38 changed files with 332 additions and 481 deletions.
6 changes: 3 additions & 3 deletions project.clj
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
:exclusions [amazonica]

:dependencies [[org.clojure/clojure "1.12.0"]
[net.clojars.macielti/common-clj "41.74.73"]
[net.clojars.macielti/common-clj "41.74.74"]
[net.clojars.macielti/http-client-component "0.1.0"]
[io.pedestal/pedestal.service "0.7.2"]
[io.pedestal/pedestal.jetty "0.7.2"]
Expand All @@ -19,7 +19,7 @@
[net.clojars.macielti/porteiro-component "0.5.2"]
[com.github.clj-easy/graal-build-time "1.0.5"]
[net.clojars.macielti/new-relic-component "0.2.0"]
[net.clojars.macielti/sqlite-component "2.1.1"]
[net.clojars.macielti/postgresql-component "2.2.2"]
[com.taoensso/timbre "6.6.1"]]

:profiles {:dev {:plugins [[com.github.clojure-lsp/lein-clojure-lsp "1.4.15"]
Expand All @@ -31,7 +31,7 @@

:test-paths ["test/unit" "test/integration" "test/helpers"]

:dependencies [[net.clojars.macielti/common-test-clj "4.2.3-1"]
:dependencies [[net.clojars.macielti/common-test-clj "5.2.3"]
[danlentz/clj-uuid "0.2.0"]
[hashp "0.2.2"]
[nubank/matcher-combinators "3.9.1"]
Expand Down
7 changes: 5 additions & 2 deletions resources/config.example.edn
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
{:test {:service-name "rango"
:jwt-secret "da3bf409-6b8e-448b-b7a7-025df2e2fa1a"
:new-relic-api-key "random-access-key"
:sqlite {:dbtype "sqlite"
:dbname "resources/rango-ceti-fausto-lustosa.db"}
:postgresql {:host "127.0.0.1"
:port 10150
:user "test"
:password "random-password"
:database "test"}
:service {:host "0.0.0.0"
:port 8080}
:admin-customer-seed {:customer {:username "admin"
Expand Down
11 changes: 1 addition & 10 deletions src/rango_graalvm/adapters/menu.clj
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,8 @@
[rango-graalvm.models.menu :as models.menu]
[rango-graalvm.wire.in.menu :as wire.in.menu]
[rango-graalvm.wire.out.menu :as wire.out.menu]
[rango-graalvm.wire.sqlite.menu :as wire.sqlite.menu]
[rango-graalvm.wire.postgresql.menu :as wire.postgresql.menu]
[schema.core :as s])
(:import (java.util UUID)))
[schema.core :as s]))

(s/defn wire->internal :- models.menu/Menu
[{:keys [reference-date description]} :- wire.in.menu/Menu]
Expand All @@ -22,13 +20,6 @@
:description description
:created-at (str created-at)})

(s/defn sqlite->internal :- models.menu/Menu
[{:menus/keys [id reference_date description created_at]} :- wire.sqlite.menu/Menu]
{:menu/id (UUID/fromString id)
:menu/reference-date (jt/local-date reference_date)
:menu/description description
:menu/created-at (jt/local-date-time created_at)})

(s/defn postgresql->internal :- models.menu/Menu
[menu :- wire.postgresql.menu/Menu]
{:menu/id (:id menu)
Expand Down
20 changes: 9 additions & 11 deletions src/rango_graalvm/adapters/reservation.clj
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
(ns rango-graalvm.adapters.reservation
(:require [java-time.api :as jt]
[rango-graalvm.models.reservation :as models.reservation]
(:require [rango-graalvm.models.reservation :as models.reservation]
[rango-graalvm.wire.out.reservation :as wire.out.reservation]
[rango-graalvm.wire.sqlite.reservation :as wire.sqlite.reservation]
[schema.core :as s])
(:import (java.util UUID)))
[rango-graalvm.wire.postgresql.reservation :as wire.postgresql.reservation]
[schema.core :as s]))

(s/defn internal->wire :- wire.out.reservation/Reservation
[{:reservation/keys [id student-id menu-id created-at]} :- models.reservation/Reservation]
Expand All @@ -13,9 +11,9 @@
:menu-id (str menu-id)
:created-at (str created-at)})

(s/defn sqlite->internal :- models.reservation/Reservation
[{:reservations/keys [id student_id menu_id created_at]} :- wire.sqlite.reservation/Reservation]
{:reservation/id (UUID/fromString id)
:reservation/student-id (UUID/fromString student_id)
:reservation/menu-id (UUID/fromString menu_id)
:reservation/created-at (jt/local-date-time created_at)})
(s/defn postgresql->internal :- models.reservation/Reservation
[{:keys [id student_id menu_id created_at]} :- wire.postgresql.reservation/Reservation]
{:reservation/id id
:reservation/student-id student_id
:reservation/menu-id menu_id
:reservation/created-at created_at})
13 changes: 6 additions & 7 deletions src/rango_graalvm/adapters/student.clj
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,8 @@
[rango-graalvm.models.sudent :as models.student]
[rango-graalvm.wire.in.student :as wire.in.student]
[rango-graalvm.wire.out.student :as wire.out.student]
[rango-graalvm.wire.sqlite.student :as wire.sqlite.student]
[schema.core :as s])
(:import (java.util UUID)))
[rango-graalvm.wire.postgresql.student :as wire.postgresql.student]
[schema.core :as s]))

(s/defn wire->internal :- models.student/Student
[{:keys [code name class]} :- wire.in.student/Student]
Expand All @@ -24,10 +23,10 @@
:class (clojure.core/name class)
:created-at (str created-at)})

(s/defn sqlite->internal :- models.student/Student
[{:students/keys [id code name class created_at]} :- wire.sqlite.student/Student]
{:student/id (UUID/fromString id)
(s/defn postgresql->internal :- models.student/Student
[{:keys [id code name class created_at]} :- wire.postgresql.student/Student]
{:student/id id
:student/code code
:student/name name
:student/class (csk/->kebab-case-keyword class)
:student/created-at (jt/local-date-time created_at)})
:student/created-at created_at})
10 changes: 5 additions & 5 deletions src/rango_graalvm/components.clj
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@
[new-relic-component.core :as component.new-relic]
[porteiro-component.admin-component :as porteiro.admin]
[porteiro-component.diplomat.http-server :as porteiro.diplomat.http-server]
[postgresql-component.core :as component.postgresql]
[rango-graalvm.diplomat.http-server :as diplomat.http-server]
[service-component.core :as component.service]
[sqlite-component.core :as component.sqlite]
[taoensso.timbre.tools.logging])
(:gen-class))

Expand All @@ -24,14 +24,14 @@
:prometheus (ig/ref ::component.prometheus/prometheus)}}
::component.new-relic/new-relic {:components {:config (ig/ref ::component.config/config)
:http-client (ig/ref ::component.http-client/http-client)}}
::component.sqlite/sqlite {:components {:config (ig/ref ::component.config/config)}}
::porteiro.admin/admin {:components {:config (ig/ref ::component.config/config)
:sqlite (ig/ref ::component.sqlite/sqlite)}}
::component.postgresql/postgresql {:components {:config (ig/ref ::component.config/config)}}
::porteiro.admin/admin {:components {:config (ig/ref ::component.config/config)
:postgresql (ig/ref ::component.postgresql/postgresql)}}
::component.routes/routes {:routes (concat diplomat.http-server/routes porteiro.diplomat.http-server/routes)}
::component.service/service {:components {:config (ig/ref ::component.config/config)
:routes (ig/ref ::component.routes/routes)
:prometheus (ig/ref ::component.prometheus/prometheus)
:sqlite (ig/ref ::component.sqlite/sqlite)}}})
:postgresql (ig/ref ::component.postgresql/postgresql)}}})

(defn start-system! []
(ig/init config))
Expand Down
2 changes: 1 addition & 1 deletion src/rango_graalvm/controllers/menu.clj
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
(ns rango-graalvm.controllers.menu
(:require [rango-graalvm.db.sqlite.menu :as database.menu]
(:require [rango-graalvm.db.postgresql.menu :as database.menu]
[rango-graalvm.models.menu :as models.menu]
[schema.core :as s]))

Expand Down
8 changes: 4 additions & 4 deletions src/rango_graalvm/controllers/reservation.clj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
(ns rango-graalvm.controllers.reservation
(:require [rango-graalvm.db.sqlite.menu :as database.menu]
[rango-graalvm.db.sqlite.reservation :as database.reservation]
[rango-graalvm.db.sqlite.student :as database.student]
(:require [rango-graalvm.db.postgresql.menu :as database.menu]
[rango-graalvm.db.postgresql.reservation :as database.reservation]
[rango-graalvm.db.postgresql.student :as database.student]
[rango-graalvm.logic.reservation :as logic.reservation]
[rango-graalvm.models.reservation :as models.reservation]
[schema.core :as s]))
Expand Down Expand Up @@ -37,4 +37,4 @@
database]
(-> (database.student/lookup-by-code student-code database)
:student/id
(database.reservation/fetch-student-reservation-by-menu menu-id database)))
(database.reservation/lookup-by-student-and-menu menu-id database)))
2 changes: 1 addition & 1 deletion src/rango_graalvm/controllers/student.clj
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
(ns rango-graalvm.controllers.student
(:require [rango-graalvm.db.sqlite.student :as database.student]
(:require [rango-graalvm.db.postgresql.student :as database.student]
[rango-graalvm.models.sudent :as models.student]
[schema.core :as s]))

Expand Down
1 change: 0 additions & 1 deletion src/rango_graalvm/db/postgresql/menu.clj
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
first
adapters.menu/postgresql->internal)))


(s/defn lookup :- (s/maybe models.menu/Menu)
[menu-id :- s/Uuid
postgresql-pool]
Expand Down
55 changes: 55 additions & 0 deletions src/rango_graalvm/db/postgresql/reservation.clj
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
(ns rango-graalvm.db.postgresql.reservation
(:require [pg.core :as pg]
[pg.pool :as pool]
[rango-graalvm.adapters.reservation :as adapters.reservation]
[rango-graalvm.models.reservation :as models.reservation]
[schema.core :as s]))

(s/defn insert! :- models.reservation/Reservation
[{:reservation/keys [id student-id menu-id created-at]} :- models.reservation/Reservation
postgresql-pool]
(pool/with-connection [database-conn postgresql-pool]
(-> (pg/execute database-conn
"INSERT INTO reservations (id, student_id, menu_id, created_at) VALUES ($1, $2, $3, $4)
returning *"
{:params [id student-id menu-id created-at]})
first
adapters.reservation/postgresql->internal)))

(s/defn by-menu :- [models.reservation/Reservation]
[menu-id :- s/Uuid
postgresql-pool]
(pool/with-connection [database-conn postgresql-pool]
(some-> (pg/execute database-conn
"SELECT * FROM reservations WHERE menu_id = $1"
{:params [menu-id]})
(->> (map adapters.reservation/postgresql->internal)))))

(s/defn lookup :- (s/maybe models.reservation/Reservation)
[reservation-id :- s/Uuid
postgresql-pool]
(pool/with-connection [database-conn postgresql-pool]
(some-> (pg/execute database-conn
"SELECT * FROM reservations WHERE id = $1"
{:params [reservation-id]})
first
adapters.reservation/postgresql->internal)))

(s/defn lookup-by-student-and-menu :- (s/maybe models.reservation/Reservation)
[student-id :- s/Uuid
menu-id :- s/Uuid
postgresql-pool]
(pool/with-connection [database-conn postgresql-pool]
(some-> (pg/execute database-conn
"SELECT * FROM reservations WHERE menu_id = $1 AND student_id = $2"
{:params [menu-id student-id]})
first
adapters.reservation/postgresql->internal)))

(s/defn retract!
[reservation-id :- s/Uuid
postgresql-pool]
(pool/with-connection [database-conn postgresql-pool]
(pg/execute database-conn
"DELETE FROM reservations WHERE id = $1"
{:params [reservation-id]})))
57 changes: 57 additions & 0 deletions src/rango_graalvm/db/postgresql/student.clj
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
(ns rango-graalvm.db.postgresql.student
(:require [camel-snake-kebab.core :as csk]
[pg.core :as pg]
[pg.pool :as pool]
[rango-graalvm.adapters.student :as adapters.student]
[rango-graalvm.models.sudent :as models.student]
[schema.core :as s]))

(s/defn insert! :- models.student/Student
[{:student/keys [id code name class created-at]} :- models.student/Student
postgresql-pool]
(pool/with-connection [database-conn postgresql-pool]
(-> (pg/execute database-conn
"INSERT INTO students (id, code, name, class, created_at) VALUES ($1, $2, $3, $4, $5)
returning *"
{:params [id code name (csk/->snake_case_string class) created-at]})
first
adapters.student/postgresql->internal)))

(s/defn lookup-by-code :- (s/maybe models.student/Student)
[code :- s/Str
postgresql-pool]
(pool/with-connection [database-conn postgresql-pool]
(some-> (pg/execute database-conn
"SELECT * FROM students WHERE code = $1"
{:params [code]})
first
adapters.student/postgresql->internal)))

(s/defn all :- [models.student/Student]
[postgresql-pool]
(pool/with-connection [database-conn postgresql-pool]
(some-> (pg/execute database-conn
"SELECT * FROM students")
(->> (map adapters.student/postgresql->internal)))))

(s/defn by-menu-reservation :- [models.student/Student]
[menu-id :- s/Uuid
postgresql-pool]
(pool/with-connection [database-conn postgresql-pool]
(some-> (pg/execute database-conn
"SELECT students.*
FROM students
JOIN reservations ON students.id = reservations.student_id
WHERE
reservations.menu_id = $1
ORDER BY students.class"
{:params [menu-id]})
(->> (map adapters.student/postgresql->internal)))))

(s/defn retract!
[student-id :- s/Uuid
postgresql-pool]
(pool/with-connection [database-conn postgresql-pool]
(pg/execute database-conn
"DELETE FROM students WHERE id = $1"
{:params [student-id]})))
33 changes: 0 additions & 33 deletions src/rango_graalvm/db/sqlite/menu.clj

This file was deleted.

52 changes: 0 additions & 52 deletions src/rango_graalvm/db/sqlite/reservation.clj

This file was deleted.

Loading

0 comments on commit dacd041

Please sign in to comment.