summaryrefslogtreecommitdiff
path: root/lib/api/settings.rb
diff options
context:
space:
mode:
authorJacob Vosmaer <contact@jacobvosmaer.nl>2015-07-27 11:22:35 +0200
committerJacob Vosmaer <contact@jacobvosmaer.nl>2015-07-27 11:22:35 +0200
commit0be6debb0b3350f35bf4b6a904c60da826314b3b (patch)
tree5a9281db4a97d8ffa8f3efc73e17fb0b11b17aef /lib/api/settings.rb
parentd371331a65070ce5b3ab9c210eac697062170c91 (diff)
parentcd6046e1dd347f3a9bd7d062447aa25306a5755b (diff)
downloadgitlab-ce-0be6debb0b3350f35bf4b6a904c60da826314b3b.tar.gz
Merge branch 'master' of dev.gitlab.org:gitlab/gitlabhq into backup-archive-permissions
Diffstat (limited to 'lib/api/settings.rb')
-rw-r--r--lib/api/settings.rb35
1 files changed, 35 insertions, 0 deletions
diff --git a/lib/api/settings.rb b/lib/api/settings.rb
new file mode 100644
index 00000000000..c885fcd7ea3
--- /dev/null
+++ b/lib/api/settings.rb
@@ -0,0 +1,35 @@
+module API
+ class Settings < Grape::API
+ before { authenticated_as_admin! }
+
+ helpers do
+ def current_settings
+ @current_setting ||=
+ (ApplicationSetting.current || ApplicationSetting.create_from_defaults)
+ end
+ end
+
+ # Get current applicaiton settings
+ #
+ # Example Request:
+ # GET /application/settings
+ get "application/settings" do
+ present current_settings, with: Entities::ApplicationSetting
+ end
+
+ # Modify applicaiton settings
+ #
+ # Example Request:
+ # PUT /application/settings
+ put "application/settings" do
+ attributes = current_settings.attributes.keys - ["id"]
+ attrs = attributes_for_keys(attributes)
+
+ if current_settings.update_attributes(attrs)
+ present current_settings, with: Entities::ApplicationSetting
+ else
+ render_validation_error!(current_settings)
+ end
+ end
+ end
+end