Skip to content

Commit

Permalink
Merge pull request #8 from AtmosSystem/refactoring
Browse files Browse the repository at this point in the history
Refactoring service
  • Loading branch information
xerp committed Dec 25, 2019
2 parents 06818cd + 20d46ef commit e0812d6
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 16 deletions.
4 changes: 2 additions & 2 deletions project.clj
@@ -1,10 +1,10 @@
(defproject atmos-logs "1.8"
(defproject atmos-logs "2.0"
:description "Logs micro service for atmos system"
:url "https://github.com/AtmosSystem/Logs"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.8.0"]
[atmos-kernel "0.6.35"]]
[atmos-kernel "1.3"]]
:repositories [["releases" {:url "https://clojars.org/repo"
:username :env/CLOJAR_USERNAME
:password :env/CLOJAR_PASSWORD
Expand Down
29 changes: 17 additions & 12 deletions src/atmos_logs/api.clj
@@ -1,24 +1,29 @@
(ns atmos-logs.api
(:require [atmos-kernel.web.core :refer [json-web-app
request-body]]
(:require [atmos-kernel.web.ring :refer [def-json-web-api]]
[ring.middleware.defaults :refer [api-defaults]]
[atmos-kernel.web.security.auth :refer [token-auth]]
[atmos-kernel.web.route :refer [defatmos-route
[atmos-kernel.web.route :refer [defatmos-routes
atmos-main-route
atmos-GET
atmos-PUT]]
[atmos-logs.core :refer :all]))
[atmos-kernel.serializer.core :refer :all]
[atmos-logs.core :refer :all]
[atmos-logs.serializers :refer :all]))


(def logs "logs")
(def log "log")

(defatmos-route app-routes :logs
(atmos-GET [logs] (get-all logs request)
:authentication-needed? true)
(declare app app-routes request id)

(atmos-GET [log :id] (get-log id)
:authentication-needed? true)
(defatmos-routes app-routes
(atmos-main-route :logs)

(atmos-PUT [log] (add-log (request-body request))
:authentication-needed? true))
(atmos-GET [logs] request
(serialize (get-all logs request) serialize-log))

(def app (json-web-app app-routes token-auth))
(atmos-PUT [log] request
(let [log-data (de-serialize (request :params) de-serialize-log)]
(add-log log-data))))

(def-json-web-api app app-routes api-defaults token-auth)
4 changes: 2 additions & 2 deletions src/atmos_logs/core.clj
@@ -1,8 +1,8 @@
(ns atmos-logs.core
(:require [atmos-kernel.protocol :refer [defatmos-record-protocol]]))

(declare ILogProtocol add-log get-log)
(declare ILogProtocol add-log)

(defatmos-record-protocol :Log '[add-log get-log])
(defatmos-record-protocol :Log '[add-log])

(defmulti get-all (fn [entity request] (keyword entity)))
26 changes: 26 additions & 0 deletions src/atmos_logs/serializers.clj
@@ -0,0 +1,26 @@
(ns atmos-logs.serializers
(:require [atmos-kernel.serializer.core :refer :all]))

(defrecord Log [id date-time log-type module user data])
(defrecord LogAddition [logger-type log-type module user data])

(defn serialize-log
[log-data]
(let [{:keys [id date_time log_type module user data]} log-data

log-data (mapping (make-fields ->Log serializer-field [[id 'id]
[date_time 'date_time]
[log_type 'log_type]
[module 'module]
[user 'user]
[data 'data]]))]

log-data))

(defn de-serialize-log
[log-data]
(mapping (->LogAddition (de-serializer-field (get log-data "logger_type"))
(de-serializer-field (get log-data "log_type"))
(de-serializer-field (get log-data "module"))
(de-serializer-field (get log-data "user" nil) :number)
(de-serializer-field (get log-data "data")))))

0 comments on commit e0812d6

Please sign in to comment.