@@ -68,41 +68,11 @@ export class RemoteConfigApiClient {
6868 }
6969
7070 public getTemplate ( ) : Promise < RemoteConfigTemplate > {
71- return this . getUrl ( )
72- . then ( ( url ) => {
73- const request : HttpRequestConfig = {
74- method : 'GET' ,
75- url : `${ url } /remoteConfig` ,
76- headers : FIREBASE_REMOTE_CONFIG_HEADERS
77- } ;
78- return this . httpClient . send ( request ) ;
79- } )
80- . then ( ( resp ) => {
81- return this . toRemoteConfigTemplate ( resp ) ;
82- } )
83- . catch ( ( err ) => {
84- throw this . toFirebaseError ( err ) ;
85- } ) ;
71+ return this . getTemplateInternal ( 'remoteConfig' ) ;
8672 }
8773
8874 public getTemplateAtVersion ( versionNumber : number | string ) : Promise < RemoteConfigTemplate > {
89- const data = { versionNumber : this . validateVersionNumber ( versionNumber ) } ;
90- return this . getUrl ( )
91- . then ( ( url ) => {
92- const request : HttpRequestConfig = {
93- method : 'GET' ,
94- url : `${ url } /remoteConfig` ,
95- headers : FIREBASE_REMOTE_CONFIG_HEADERS ,
96- data
97- } ;
98- return this . httpClient . send ( request ) ;
99- } )
100- . then ( ( resp ) => {
101- return this . toRemoteConfigTemplate ( resp ) ;
102- } )
103- . catch ( ( err ) => {
104- throw this . toFirebaseError ( err ) ;
105- } ) ;
75+ return this . getTemplateInternal ( 'remoteConfig' , versionNumber ) ;
10676 }
10777
10878 public validateTemplate ( template : RemoteConfigTemplate ) : Promise < RemoteConfigTemplate > {
@@ -120,7 +90,10 @@ export class RemoteConfigApiClient {
12090 } ) ;
12191 }
12292
123- public publishTemplate ( template : RemoteConfigTemplate , options ?: { force : boolean ; } ) : Promise < RemoteConfigTemplate > {
93+ public publishTemplate (
94+ template : RemoteConfigTemplate ,
95+ options ?: { force : boolean ; }
96+ ) : Promise < RemoteConfigTemplate > {
12497 template = this . validateInputRemoteConfigTemplate ( template ) ;
12598 let ifMatch : string = template . etag ;
12699 if ( options && options . force === true ) {
@@ -138,45 +111,11 @@ export class RemoteConfigApiClient {
138111 }
139112
140113 public rollback ( versionNumber : number | string ) : Promise < RemoteConfigTemplate > {
141- const data = { versionNumber : this . validateVersionNumber ( versionNumber ) } ;
142- return this . getUrl ( )
143- . then ( ( url ) => {
144- const request : HttpRequestConfig = {
145- method : 'POST' ,
146- url : `${ url } /remoteConfig:rollback` ,
147- headers : FIREBASE_REMOTE_CONFIG_HEADERS ,
148- data
149- } ;
150- return this . httpClient . send ( request ) ;
151- } )
152- . then ( ( resp ) => {
153- return this . toRemoteConfigTemplate ( resp ) ;
154- } )
155- . catch ( ( err ) => {
156- throw this . toFirebaseError ( err ) ;
157- } ) ;
114+ return this . rollbackInternal ( 'remoteConfig:rollback' , versionNumber ) ;
158115 }
159116
160117 public listVersions ( options ?: ListVersionsOptions ) : Promise < ListVersionsResult > {
161- if ( typeof options !== 'undefined' ) {
162- options = this . validateListVersionsOptions ( options ) ;
163- }
164- return this . getUrl ( )
165- . then ( ( url ) => {
166- const request : HttpRequestConfig = {
167- method : 'GET' ,
168- url : `${ url } /remoteConfig:listVersions` ,
169- headers : FIREBASE_REMOTE_CONFIG_HEADERS ,
170- data : options
171- } ;
172- return this . httpClient . send ( request ) ;
173- } )
174- . then ( ( resp ) => {
175- return resp . data ;
176- } )
177- . catch ( ( err ) => {
178- throw this . toFirebaseError ( err ) ;
179- } ) ;
118+ return this . listVersionsInternal ( 'remoteConfig:listVersions' , options ) ;
180119 }
181120
182121 public getServerTemplate ( ) : Promise < ServerTemplateData > {
@@ -198,41 +137,11 @@ export class RemoteConfigApiClient {
198137 }
199138
200139 public getServerConfigTemplate ( ) : Promise < RemoteConfigTemplate > {
201- return this . getUrl ( )
202- . then ( ( url ) => {
203- const request : HttpRequestConfig = {
204- method : 'GET' ,
205- url : `${ url } /namespaces/firebase-server/remoteConfig` ,
206- headers : FIREBASE_REMOTE_CONFIG_HEADERS
207- } ;
208- return this . httpClient . send ( request ) ;
209- } )
210- . then ( ( resp ) => {
211- return this . toRemoteConfigTemplate ( resp ) ;
212- } )
213- . catch ( ( err ) => {
214- throw this . toFirebaseError ( err ) ;
215- } ) ;
140+ return this . getTemplateInternal ( 'namespaces/firebase-server/remoteConfig' ) ;
216141 }
217142
218143 public getServerConfigTemplateAtVersion ( versionNumber : number | string ) : Promise < RemoteConfigTemplate > {
219- const data = { versionNumber : this . validateVersionNumber ( versionNumber ) } ;
220- return this . getUrl ( )
221- . then ( ( url ) => {
222- const request : HttpRequestConfig = {
223- method : 'GET' ,
224- url : `${ url } /namespaces/firebase-server/remoteConfig` ,
225- headers : FIREBASE_REMOTE_CONFIG_HEADERS ,
226- data
227- } ;
228- return this . httpClient . send ( request ) ;
229- } )
230- . then ( ( resp ) => {
231- return this . toRemoteConfigTemplate ( resp ) ;
232- } )
233- . catch ( ( err ) => {
234- throw this . toFirebaseError ( err ) ;
235- } ) ;
144+ return this . getTemplateInternal ( 'namespaces/firebase-server/remoteConfig' , versionNumber ) ;
236145 }
237146
238147 public validateServerConfigTemplate ( template : RemoteConfigTemplate ) : Promise < RemoteConfigTemplate > {
@@ -266,12 +175,50 @@ export class RemoteConfigApiClient {
266175 }
267176
268177 public rollbackServerConfigTemplate ( versionNumber : number | string ) : Promise < RemoteConfigTemplate > {
178+ return this . rollbackInternal ( 'namespaces/firebase-server/remoteConfig:rollback' , versionNumber ) ;
179+ }
180+
181+ public listServerConfigVersions ( options ?: ListVersionsOptions ) : Promise < ListVersionsResult > {
182+ return this . listVersionsInternal ( 'namespaces/firebase-server/remoteConfig:listVersions' , options ) ;
183+ }
184+
185+ private getTemplateInternal (
186+ path : string ,
187+ versionNumber ?: number | string
188+ ) : Promise < RemoteConfigTemplate > {
189+ const data = typeof versionNumber !== 'undefined'
190+ ? { versionNumber : this . validateVersionNumber ( versionNumber ) }
191+ : undefined ;
192+ return this . getUrl ( )
193+ . then ( ( url ) => {
194+ const request : HttpRequestConfig = {
195+ method : 'GET' ,
196+ url : `${ url } /${ path } ` ,
197+ headers : FIREBASE_REMOTE_CONFIG_HEADERS
198+ } ;
199+ if ( typeof data !== 'undefined' ) {
200+ request . data = data ;
201+ }
202+ return this . httpClient . send ( request ) ;
203+ } )
204+ . then ( ( resp ) => {
205+ return this . toRemoteConfigTemplate ( resp ) ;
206+ } )
207+ . catch ( ( err ) => {
208+ throw this . toFirebaseError ( err ) ;
209+ } ) ;
210+ }
211+
212+ private rollbackInternal (
213+ path : string ,
214+ versionNumber : number | string
215+ ) : Promise < RemoteConfigTemplate > {
269216 const data = { versionNumber : this . validateVersionNumber ( versionNumber ) } ;
270217 return this . getUrl ( )
271218 . then ( ( url ) => {
272219 const request : HttpRequestConfig = {
273220 method : 'POST' ,
274- url : `${ url } /namespaces/firebase-server/remoteConfig:rollback ` ,
221+ url : `${ url } /${ path } ` ,
275222 headers : FIREBASE_REMOTE_CONFIG_HEADERS ,
276223 data
277224 } ;
@@ -285,15 +232,18 @@ export class RemoteConfigApiClient {
285232 } ) ;
286233 }
287234
288- public listServerConfigVersions ( options ?: ListVersionsOptions ) : Promise < ListVersionsResult > {
235+ private listVersionsInternal (
236+ path : string ,
237+ options ?: ListVersionsOptions
238+ ) : Promise < ListVersionsResult > {
289239 if ( typeof options !== 'undefined' ) {
290240 options = this . validateListVersionsOptions ( options ) ;
291241 }
292242 return this . getUrl ( )
293243 . then ( ( url ) => {
294244 const request : HttpRequestConfig = {
295245 method : 'GET' ,
296- url : `${ url } /namespaces/firebase-server/remoteConfig:listVersions ` ,
246+ url : `${ url } /${ path } ` ,
297247 headers : FIREBASE_REMOTE_CONFIG_HEADERS ,
298248 data : options
299249 } ;
0 commit comments