diff --git a/dev/user.clj b/dev/user.clj index 2bf3c09..1f3f2f3 100644 --- a/dev/user.clj +++ b/dev/user.clj @@ -3,19 +3,71 @@ [clojure.java.io :as io] [clojure.tools.logging :as log] [clojure.tools.namespace.repl :as tn-repl] + [migration :as migration] [com.score-the-pigs :as main :refer [system]] [com.score-the-pigs.util.db :as db] [honey.sql :as sql] [honey.sql.helpers :refer [drop-table]] - [next.jdbc :as jdbc])) + [next.jdbc :as jdbc] + [migratus.core :as migratus])) (defn reset-db! [] (let [{:keys [example/ds]} @system - tables [:user :player] + tables [:game :player :schema_migrations] drop-statements (map (fn [table] (sql/format (drop-table :if-exists table))) tables)] + (println ds) (db/execute-all! ds drop-statements) + (migratus/migrate migration/config) + (let [game-code "test"] + (jdbc/execute! ds + (sql/format + {:insert-into :game + :values [{:code game-code, + :current_player 0, + :player_count 3, + :scoring_option "first-to-100"}]})) + (jdbc/execute! ds + (sql/format + {:insert-into :player + :values [{:game_score 0, + :round_score 0, + :name "luci", + :game_code game-code, + :play_order 0} + {:game_score 0, + :round_score 0, + :name "lily", + :game_code game-code, + :play_order 1} + {:game_score 0, + :round_score 0, + :name "delta", + :game_code game-code, + :play_order 2}]}))))) - (jdbc/execute! ds [(slurp (io/resource "migrations.sql"))]))) +(defn game [c] + (let [{:keys [example/ds]} @system] + (->> {:select :* :from :game :where [:= :game.code c]} + sql/format + (jdbc/execute-one! ds)))) + +(defn games [] + (let [{:keys [example/ds]} @system] + (->> {:select :* :from :game} + sql/format + (jdbc/execute! ds)))) + +(defn players [] + (let [{:keys [example/ds]} @system] + (->> {:select :* :from :player} + sql/format + (jdbc/execute! ds)))) + +(defn game-players [c] + (let [{:keys [example/ds]} @system] + (->> {:select :* :from :player :where [:= :player.game-code c]} + sql/format + (jdbc/execute! ds)))) (defn refresh [] (doseq [f (:biff/stop @system)]