Last active
June 7, 2020 02:39
-
-
Save renatoalencar/84af0e8e6c36bbb8715e9ff0f77d4bfc to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;; | |
;; Todo o ciclo de vida do banco de dados | |
;; fica encapsulado em um componente. | |
;; | |
(defrecord Database [uri database connection] | |
component/Lifecycle | |
(start [component] | |
(let [{:keys [conn db]} (mg/connect-via-uri uri)] | |
(assoc component :database db | |
::connection conn))) | |
(stop [component] | |
(-> component ::connection mg/disconnect) | |
component)) | |
;; | |
;; O construtor tem que ser uma funcao pura | |
;; | |
(defn new-database [uri] | |
(map->Database {:uri uri})) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment