diff options
Diffstat (limited to 'src/api')
-rw-r--r-- | src/api/FeaturesApi.js | 13 | ||||
-rw-r--r-- | src/api/RecipesApi.js | 2 | ||||
-rw-r--r-- | src/api/index.js | 2 | ||||
-rw-r--r-- | src/api/server/ServerApi.js | 29 |
4 files changed, 45 insertions, 1 deletions
diff --git a/src/api/FeaturesApi.js b/src/api/FeaturesApi.js new file mode 100644 index 000000000..c66f28f5b --- /dev/null +++ b/src/api/FeaturesApi.js | |||
@@ -0,0 +1,13 @@ | |||
1 | export default class FeaturesApi { | ||
2 | constructor(server) { | ||
3 | this.server = server; | ||
4 | } | ||
5 | |||
6 | default() { | ||
7 | return this.server.getDefaultFeatures(); | ||
8 | } | ||
9 | |||
10 | features() { | ||
11 | return this.server.getFeatures(); | ||
12 | } | ||
13 | } | ||
diff --git a/src/api/RecipesApi.js b/src/api/RecipesApi.js index 0573dacaf..800888b00 100644 --- a/src/api/RecipesApi.js +++ b/src/api/RecipesApi.js | |||
@@ -1,4 +1,4 @@ | |||
1 | export default class ServicesApi { | 1 | export default class RecipesApi { |
2 | constructor(server) { | 2 | constructor(server) { |
3 | this.server = server; | 3 | this.server = server; |
4 | } | 4 | } |
diff --git a/src/api/index.js b/src/api/index.js index 3fc18c4b5..3c87cc087 100644 --- a/src/api/index.js +++ b/src/api/index.js | |||
@@ -6,12 +6,14 @@ import UserApi from './UserApi'; | |||
6 | import LocalApi from './LocalApi'; | 6 | import LocalApi from './LocalApi'; |
7 | import PaymentApi from './PaymentApi'; | 7 | import PaymentApi from './PaymentApi'; |
8 | import NewsApi from './NewsApi'; | 8 | import NewsApi from './NewsApi'; |
9 | import FeaturesApi from './FeaturesApi'; | ||
9 | 10 | ||
10 | export default (server, local) => ({ | 11 | export default (server, local) => ({ |
11 | app: new AppApi(server, local), | 12 | app: new AppApi(server, local), |
12 | services: new ServicesApi(server, local), | 13 | services: new ServicesApi(server, local), |
13 | recipePreviews: new RecipePreviewsApi(server, local), | 14 | recipePreviews: new RecipePreviewsApi(server, local), |
14 | recipes: new RecipesApi(server, local), | 15 | recipes: new RecipesApi(server, local), |
16 | features: new FeaturesApi(server, local), | ||
15 | user: new UserApi(server, local), | 17 | user: new UserApi(server, local), |
16 | local: new LocalApi(server, local), | 18 | local: new LocalApi(server, local), |
17 | payment: new PaymentApi(server, local), | 19 | payment: new PaymentApi(server, local), |
diff --git a/src/api/server/ServerApi.js b/src/api/server/ServerApi.js index ad1ffa59a..164419951 100644 --- a/src/api/server/ServerApi.js +++ b/src/api/server/ServerApi.js | |||
@@ -261,6 +261,35 @@ export default class ServerApi { | |||
261 | return data; | 261 | return data; |
262 | } | 262 | } |
263 | 263 | ||
264 | // Features | ||
265 | async getDefaultFeatures() { | ||
266 | const request = await window.fetch(`${SERVER_URL}/${API_VERSION}/features/default`, this._prepareAuthRequest({ | ||
267 | method: 'GET', | ||
268 | })); | ||
269 | if (!request.ok) { | ||
270 | throw request; | ||
271 | } | ||
272 | const data = await request.json(); | ||
273 | |||
274 | const features = data; | ||
275 | console.debug('ServerApi::getDefaultFeatures resolves', features); | ||
276 | return features; | ||
277 | } | ||
278 | |||
279 | async getFeatures() { | ||
280 | const request = await window.fetch(`${SERVER_URL}/${API_VERSION}/features`, this._prepareAuthRequest({ | ||
281 | method: 'GET', | ||
282 | })); | ||
283 | if (!request.ok) { | ||
284 | throw request; | ||
285 | } | ||
286 | const data = await request.json(); | ||
287 | |||
288 | const features = data; | ||
289 | console.debug('ServerApi::getFeatures resolves', features); | ||
290 | return features; | ||
291 | } | ||
292 | |||
264 | // Recipes | 293 | // Recipes |
265 | async getInstalledRecipes() { | 294 | async getInstalledRecipes() { |
266 | const recipesDirectory = getRecipeDirectory(); | 295 | const recipesDirectory = getRecipeDirectory(); |