3
3
class Travis ::Api ::App
4
4
class SettingsEndpoint < Endpoint
5
5
include ActiveSupport ::Callbacks
6
+ extend ActiveSupport ::Concern
6
7
7
8
define_callbacks :after_save
8
-
9
9
set_callback :after_save , :after , :save_audit
10
+
10
11
set ( :prefix ) { "/settings/" << name [ /[^:]+$/ ] . underscore }
11
12
12
13
class << self
@@ -24,7 +25,7 @@ def subclass(name)
24
25
end
25
26
26
27
def create_settings_class ( name )
27
- klass = Class . new ( self ) do
28
+ Class . new ( self ) do
28
29
define_method ( :name ) { name }
29
30
before { authenticate_by_mode! }
30
31
define_routes!
@@ -43,7 +44,6 @@ def define_routes!
43
44
# Rails style methods for easy overriding
44
45
def index
45
46
respond_with ( collection , type : name , version : :v2 )
46
-
47
47
end
48
48
49
49
def show
@@ -54,8 +54,13 @@ def update
54
54
disallow_migrating! ( repo )
55
55
56
56
record . update ( JSON . parse ( request . body . read ) [ singular_name ] )
57
+
57
58
if record . valid?
58
- @changes = { :"env_vars" => { created : "name: #{ record . name } , is_public: #{ record . public } , branch: #{ record . branch || 'all' } " } } if is_env_var?
59
+ @changes = {
60
+ env_vars : {
61
+ created : "name: #{ record . name } , is_public: #{ record . public } , branch: #{ record . branch || 'all' } "
62
+ }
63
+ } if is_env_var?
59
64
60
65
repo_settings . save
61
66
run_callbacks :after_save if is_env_var?
@@ -71,8 +76,13 @@ def create
71
76
disallow_migrating! ( repo )
72
77
73
78
record = collection . create ( JSON . parse ( request . body . read ) [ singular_name ] )
79
+
74
80
if record . valid?
75
- @changes = { :"env_vars" => { created : "name: #{ record . name } , is_public: #{ record . public } , branch: #{ record . branch || 'all' } " } } if is_env_var?
81
+ @changes = {
82
+ env_vars : {
83
+ created : "name: #{ record . name } , is_public: #{ record . public } , branch: #{ record . branch || 'all' } "
84
+ }
85
+ } if is_env_var?
76
86
77
87
repo_settings . save
78
88
run_callbacks :after_save if is_env_var?
@@ -88,7 +98,11 @@ def destroy
88
98
disallow_migrating! ( repo )
89
99
90
100
record = collection . destroy ( params [ :id ] ) || record_not_found
91
- @changes = { :"env_vars" => { destroyed : "name: #{ record . name } , is_public: #{ record . public } , branch: #{ record . branch || 'all' } " } } if is_env_var?
101
+ @changes = {
102
+ env_vars : {
103
+ destroyed : "name: #{ record . name } , is_public: #{ record . public } , branch: #{ record . branch || 'all' } "
104
+ }
105
+ } if is_env_var?
92
106
93
107
repo_settings . save
94
108
run_callbacks :after_save if is_env_var?
@@ -112,8 +126,8 @@ def repo
112
126
# Sinatra's method
113
127
def repo_settings
114
128
@settings ||= begin
115
- service ( :find_repo_settings , id : params [ 'repository_id' ] . to_i ) . run
116
- end || halt ( 404 , error : "Couldn't find repository" )
129
+ service ( :find_repo_settings , id : params [ 'repository_id' ] . to_i ) . run
130
+ end || halt ( 404 , error : "Couldn't find repository" )
117
131
end
118
132
119
133
def record
@@ -136,7 +150,14 @@ def is_env_var?
136
150
137
151
def save_audit
138
152
change_source = access_token . app_id == 2 ? 'admin-v2' : 'travis-api'
139
- Travis ::API ::V3 ::Models ::Audit . create! ( owner : current_user , change_source : change_source , source : @repo , source_changes : { settings : self . changes } )
153
+ Travis ::API ::V3 ::Models ::Audit . create! (
154
+ owner : current_user ,
155
+ change_source : change_source ,
156
+ source : @repo ,
157
+ source_changes : {
158
+ settings : self . changes
159
+ }
160
+ )
140
161
@changes = { }
141
162
end
142
163
end
0 commit comments