Skip to content

Instantly share code, notes, and snippets.

@DGaffney
Created September 5, 2014 18:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save DGaffney/76a95097b7ef402f5c6f to your computer and use it in GitHub Desktop.
Save DGaffney/76a95097b7ef402f5c6f to your computer and use it in GitHub Desktop.
(ns graph-api.core
(:gen-class)
(:use compojure.core
clojure.stacktrace
ring.middleware.json)
(:require [ring.adapter.jetty :as jetty]
[clojure.string :as string]
[compojure.handler :as handler]
[monger.collection :as mc]
[environ.core :refer [env]]
[digest :as d]
[graph-api.mongodb :as m]
[graph-api.controllers.user :as controllers.user]
[graph-api.controllers.graph :as controllers.graph]
[graph-api.controllers.edge :as controllers.edge]
[graph-api.controllers.node :as controllers.node]
[noir.response :as response]
[cheshire.core :refer [generate-string]]
[cheshire.generate :refer [add-encoder encode-str]]))
(add-encoder org.bson.types.ObjectId encode-str)
(defn respond [response]
(response/json response))
(defroutes app
(ANY "/v1/user/create.json" {params :params} (respond (controllers.user/create params)))
(ANY "/v1/user/edit.json" {params :params} (respond (controllers.user/edit params)))
(ANY "/v1/user/destroy.json" {params :params} (respond (controllers.user/destroy params)))
(ANY "/v1/graph/create.json" {params :params} (respond (controllers.graph/create params)))
(ANY "/v1/graph/add-node.json" {params :params} (respond (controllers.graph/add-node params)))
(ANY "/v1/graph/drop-node.json" {params :params} (respond (controllers.graph/drop-node params)))
(ANY "/v1/graph/edit.json" {params :params} (respond (controllers.graph/edit params)))
(ANY "/v1/graph/destroy.json" {params :params} (respond (controllers.graph/destroy params)))
(ANY "/v1/graph/download.json" {params :params} (respond (controllers.graph/download params)))
(ANY "/v1/edge/create.json" {params :params} (respond (controllers.edge/create params)))
(ANY "/v1/edge/edit.json" {params :params} (respond (controllers.edge/edit params)))
(ANY "/v1/edge/destroy.json" {params :params} (respond (controllers.edge/destroy params)))
(ANY "/v1/node/create.json" {params :params} (respond (prn params)))
(ANY "/v1/node/edit.json" {params :params} (respond (controllers.node/edit params)))
(ANY "/v1/node/destroy.json" {params :params} (respond (controllers.node/destroy params))))
(defn start
[]
(m/connect! m/database-name)
(println "Started")
(jetty/run-jetty (-> app handler/site ring.middleware.json/wrap-json-params) {:port 8080}))
(defn -main
[& args]
(start))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment