(ns auto-ap.db.vendors (:require [auto-ap.db.utils :refer [clj->db db->clj get-conn]] [auto-ap.entities.vendors :as entities] [clojure.edn :as edn] [clojure.java.jdbc :as j])) (defn parse [x] (db->clj x)) (defn unparse [x] (-> x (select-keys entities/all-keys) clj->db)) (defn get-all [] (->> (j/query (get-conn) "SELECT * FROM vendors") (map parse))) (defn get-by-id [id] (parse (first (j/query (get-conn) ["SELECT * FROM vendors WHERE id = ?" id])))) (defn upsert [id data] (j/update! (get-conn) :vendors (unparse data) ["id = ?" (Integer/parseInt id)] ) (parse (first (j/query (get-conn) ["SELECT * FROM vendors WHERE id = ?" (Integer/parseInt id)])))) (defn insert [data] (parse (first (j/insert! (get-conn) :vendors (unparse data))))) (defn find-with-reminders [] (map parse (j/query (get-conn) ["SELECT * FROM vendors WHERE invoice_reminder_schedule = ?" "Weekly"])))