diff options
author | haraldox <hnaumann+github@gmail.com> | 2018-02-26 11:52:11 +0100 |
---|---|---|
committer | haraldox <hnaumann+github@gmail.com> | 2018-02-26 11:52:11 +0100 |
commit | 31820727240772a049c6af71742baa8e50039cda (patch) | |
tree | 3647701f523ebdf0cd3d9bbdb88574a7b3d8081d /src | |
parent | Merge pull request #721 from meetfranz/i18n (diff) | |
download | ferdium-app-31820727240772a049c6af71742baa8e50039cda.tar.gz ferdium-app-31820727240772a049c6af71742baa8e50039cda.tar.zst ferdium-app-31820727240772a049c6af71742baa8e50039cda.zip |
initial commit
Diffstat (limited to 'src')
-rw-r--r-- | src/api/FeaturesApi.js | 9 | ||||
-rw-r--r-- | src/api/RecipesApi.js | 2 | ||||
-rw-r--r-- | src/api/index.js | 2 | ||||
-rw-r--r-- | src/api/server/ServerApi.js | 15 | ||||
-rw-r--r-- | src/stores/AppStore.js | 3 | ||||
-rw-r--r-- | src/stores/FeaturesStore.js | 18 | ||||
-rw-r--r-- | src/stores/index.js | 2 |
7 files changed, 50 insertions, 1 deletions
diff --git a/src/api/FeaturesApi.js b/src/api/FeaturesApi.js new file mode 100644 index 000000000..5749ab336 --- /dev/null +++ b/src/api/FeaturesApi.js | |||
@@ -0,0 +1,9 @@ | |||
1 | export default class FeaturesApi { | ||
2 | constructor(server) { | ||
3 | this.server = server; | ||
4 | } | ||
5 | |||
6 | defaults() { | ||
7 | return this.server.getDefaultFeatures(); | ||
8 | } | ||
9 | } | ||
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 8f3297d13..0951dfeda 100644 --- a/src/api/server/ServerApi.js +++ b/src/api/server/ServerApi.js | |||
@@ -259,6 +259,21 @@ export default class ServerApi { | |||
259 | return data; | 259 | return data; |
260 | } | 260 | } |
261 | 261 | ||
262 | // Features | ||
263 | async getDefaultFeatures() { | ||
264 | const request = await window.fetch(`${SERVER_URL}/${API_VERSION}/features/default`, this._prepareAuthRequest({ | ||
265 | method: 'GET', | ||
266 | })); | ||
267 | if (!request.ok) { | ||
268 | throw request; | ||
269 | } | ||
270 | const data = await request.json(); | ||
271 | |||
272 | const features = data; | ||
273 | console.debug('ServerApi::getDefaultFeatures resolves', features); | ||
274 | return features; | ||
275 | } | ||
276 | |||
262 | // Recipes | 277 | // Recipes |
263 | async getInstalledRecipes() { | 278 | async getInstalledRecipes() { |
264 | const recipesDirectory = getRecipeDirectory(); | 279 | const recipesDirectory = getRecipeDirectory(); |
diff --git a/src/stores/AppStore.js b/src/stores/AppStore.js index 162422017..a5640e8d3 100644 --- a/src/stores/AppStore.js +++ b/src/stores/AppStore.js | |||
@@ -158,6 +158,9 @@ export default class AppStore extends Store { | |||
158 | this.locale = this._getDefaultLocale(); | 158 | this.locale = this._getDefaultLocale(); |
159 | 159 | ||
160 | this._healthCheck(); | 160 | this._healthCheck(); |
161 | |||
162 | const defaults = this.stores.features.defaults; | ||
163 | console.log(defaults) | ||
161 | } | 164 | } |
162 | 165 | ||
163 | @computed get cacheSize() { | 166 | @computed get cacheSize() { |
diff --git a/src/stores/FeaturesStore.js b/src/stores/FeaturesStore.js new file mode 100644 index 000000000..5f738557f --- /dev/null +++ b/src/stores/FeaturesStore.js | |||
@@ -0,0 +1,18 @@ | |||
1 | import { action, computed, observable } from 'mobx'; | ||
2 | |||
3 | import Store from './lib/Store'; | ||
4 | import CachedRequest from './lib/CachedRequest'; | ||
5 | import Request from './lib/Request'; | ||
6 | |||
7 | export default class RecipesStore extends Store { | ||
8 | @observable defaultFeaturesRequest = new CachedRequest(this.api.features, 'defaults'); | ||
9 | |||
10 | setup() { | ||
11 | return this.defaults; | ||
12 | } | ||
13 | |||
14 | @computed get defaults() { | ||
15 | console.log('GETTING DEFAULTS') | ||
16 | return this.defaultFeaturesRequest.execute().result || []; | ||
17 | } | ||
18 | } | ||
diff --git a/src/stores/index.js b/src/stores/index.js index 2d99e3952..96b844c95 100644 --- a/src/stores/index.js +++ b/src/stores/index.js | |||
@@ -1,5 +1,6 @@ | |||
1 | import AppStore from './AppStore'; | 1 | import AppStore from './AppStore'; |
2 | import UserStore from './UserStore'; | 2 | import UserStore from './UserStore'; |
3 | import FeaturesStore from './FeaturesStore'; | ||
3 | import SettingsStore from './SettingsStore'; | 4 | import SettingsStore from './SettingsStore'; |
4 | import ServicesStore from './ServicesStore'; | 5 | import ServicesStore from './ServicesStore'; |
5 | import RecipesStore from './RecipesStore'; | 6 | import RecipesStore from './RecipesStore'; |
@@ -16,6 +17,7 @@ export default (api, actions, router) => { | |||
16 | router, | 17 | router, |
17 | app: new AppStore(stores, api, actions), | 18 | app: new AppStore(stores, api, actions), |
18 | user: new UserStore(stores, api, actions), | 19 | user: new UserStore(stores, api, actions), |
20 | features: new FeaturesStore(stores, api, actions), | ||
19 | settings: new SettingsStore(stores, api, actions), | 21 | settings: new SettingsStore(stores, api, actions), |
20 | services: new ServicesStore(stores, api, actions), | 22 | services: new ServicesStore(stores, api, actions), |
21 | recipes: new RecipesStore(stores, api, actions), | 23 | recipes: new RecipesStore(stores, api, actions), |