Skip to content
Snippets Groups Projects
Commit 48a8a3cc authored by Cam Saul's avatar Cam Saul
Browse files

settings -> setting

parent 93da556a
No related branches found
No related tags found
No related merge requests found
......@@ -3,21 +3,21 @@
var SettingsAdminServices = angular.module('corvusadmin.settings.services', ['ngResource', 'ngCookies']);
SettingsAdminServices.factory('SettingsAdminServices', ['$resource', '$cookies', function($resource, $cookies) {
return $resource('/api/settings', {}, {
return $resource('/api/setting', {}, {
list: {
url: '/api/settings?org=:org',
url: '/api/setting?org=:org',
method: 'GET',
isArray: true
},
// POST endpoint handles create + update in this case
save: {
url: '/api/settings',
url: '/api/setting',
method: 'POST'
},
delete: {
url: '/api/settings/:key?org=:org',
url: '/api/setting/:key?org=:org',
method: 'DELETE'
}
});
......
......@@ -11,7 +11,7 @@
[result :as result]
[search :as search]
[session :as session]
[settings :as settings]
[setting :as setting]
[user :as user])
(metabase.api.meta [dataset :as dataset]
[db :as db]
......@@ -42,7 +42,7 @@
(context "/result" [] (+auth result/routes))
(context "/search" [] (+auth search/routes))
(context "/session" [] session/routes)
(context "/settings" [] (+auth settings/routes))
(context "/setting" [] (+auth setting/routes))
(context "/user" [] (+auth user/routes))
(route/not-found (fn [{:keys [request-method uri]}]
{:status 404
......
(ns metabase.api.settings
"/api/settings endpoints"
(ns metabase.api.setting
"/api/setting endpoints"
(:require [compojure.core :refer [GET POST DELETE]]
[metabase.api.common :refer :all]
[metabase.models.setting :as settings]))
[metabase.models.setting :as setting]))
;; ## Get all settings + values
(defendpoint GET "/" [org]
(require-params org)
;; TODO - need to do a permissions check here !
(settings/all-with-descriptions org))
(setting/all-with-descriptions org))
;; ## Create/update a setting
(defendpoint POST "/" [:as {{:keys [org key value]} :body}]
(require-params key value org)
;; TODO - permissions check
(settings/set org (keyword key) value))
(setting/set org (keyword key) value))
;; ## Delete a setting
(defendpoint DELETE "/:key" [key org]
(require-params key org)
;; TODO - perms check
(settings/delete org (keyword key)))
(setting/delete org (keyword key)))
(define-routes)
......@@ -3,7 +3,7 @@
[clojure.tools.logging :as log]
[clj-http.client :as client]
[medley.core :as medley]
[metabase.models.setting :refer [defsetting] :as settings]
[metabase.models.setting :refer [defsetting]]
[metabase.util :as u]))
(declare api-post-messages-send
......
......@@ -6,7 +6,8 @@
(declare Setting
cached-setting-values
restore-cache-if-needed)
restore-cache-if-needed
settings-list)
;; # PUBLIC
......@@ -89,18 +90,6 @@
(filter identity)
(reduce merge {})))
(defn settings-list
"Return a list of all Settings (as created with `defsetting`)."
[]
(->> (all-ns)
(mapcat ns-interns)
vals
(map meta)
(filter :is-setting?)
(map (fn [{k :name desc :doc}]
{:key (keyword k)
:description desc}))))
(defn all-with-descriptions
"Return a combined list of all `Settings` and values for `Org`, if they exist."
[org-id]
......@@ -108,7 +97,8 @@
(->> (settings-list)
(map (fn [{k :key :as setting}]
(assoc setting
:value (k settings-for-org)))))))
:value (k settings-for-org))))
(sort-by :key))))
;; # IMPLEMENTATION
......@@ -125,3 +115,15 @@
(defentity ^:private Setting
(table :setting))
(defn- settings-list
"Return a list of all Settings (as created with `defsetting`)."
[]
(->> (all-ns)
(mapcat ns-interns)
vals
(map meta)
(filter :is-setting?)
(map (fn [{k :name desc :doc}]
{:key (keyword k)
:description desc}))))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment