PageRenderTime 27ms CodeModel.GetById 21ms RepoModel.GetById 1ms app.codeStats 0ms

/src/checked/models/issue.clj

https://gitlab.com/dzaporozhets/checked
Clojure | 69 lines | 56 code | 13 blank | 0 comment | 0 complexity | c1a7dc9c04627fe723c2d0654571a36c MD5 | raw file
  1. (ns checked.models.issue
  2. (:require [clojure.java.jdbc :as sql]
  3. [environ.core :refer [env]]))
  4. (def db
  5. (env :database-url))
  6. (defn get-project-issues [project_id filter]
  7. (sql/query db
  8. ["SELECT * FROM issues
  9. WHERE project_id = ?
  10. AND open = ?
  11. ORDER BY id DESC", project_id, (:open filter)]))
  12. (defn get-date-issues [date_id filter]
  13. (sql/query db
  14. ["SELECT * FROM issues
  15. WHERE date_id = ?
  16. AND open = ?
  17. ORDER BY id DESC", date_id, (:open filter)]))
  18. (defn get-user-issues [user_id]
  19. (sql/query db
  20. ["SELECT * FROM issues
  21. WHERE user_id = ?
  22. AND open = true
  23. ORDER BY id DESC", user_id]))
  24. (defn get-assigned-user-issues [user_id]
  25. (sql/query db
  26. ["SELECT * FROM issues
  27. WHERE assignee_id = ?
  28. AND open = true
  29. ORDER BY id DESC", user_id]))
  30. (defn count-authored-issues [user-id]
  31. (sql/query db
  32. ["SELECT COUNT(*) FROM issues WHERE user_id = ? AND open = true", user-id]
  33. :result-set-fn first))
  34. (defn count-assignee-issues [user-id]
  35. (sql/query db
  36. ["SELECT COUNT(*) FROM issues WHERE assignee_id = ? AND open = true", user-id]
  37. :result-set-fn first))
  38. (defn get-issue-by-id [id]
  39. (sql/query db
  40. ["SELECT * FROM issues
  41. WHERE id = ?", id]
  42. :result-set-fn first))
  43. (defn get-project-issue [project-id id]
  44. (sql/query db
  45. ["SELECT * FROM issues
  46. WHERE project_id = ?
  47. AND id = ?", (Integer. project-id), (Integer. id)]
  48. :result-set-fn first))
  49. (defn update-issue [id params]
  50. (sql/update! db :issues params ["id = ?" id]))
  51. (defn close-issue [id]
  52. (sql/update! db :issues {:open false} ["id = ?" id]))
  53. (defn reopen-issue [id]
  54. (sql/update! db :issues {:open true} ["id = ?" id]))
  55. (defn create-issue [issue]
  56. (first (sql/insert! db :issues issue)))