aboutsummaryrefslogtreecommitdiffstats
path: root/src/api
diff options
context:
space:
mode:
authorLibravatar Stefan Malzner <stefan@adlk.io>2018-11-22 14:14:25 +0100
committerLibravatar Stefan Malzner <stefan@adlk.io>2018-11-22 14:14:25 +0100
commit46b8c8c4b3a5b80e0187b284abc84566a7e784db (patch)
tree7fd378bcdd18e78c42dfeb61a15f89fd10106046 /src/api
parentADD features loading spinner (diff)
parentfeat(App): Add option to enable dark mode for supported services (diff)
downloadferdium-app-46b8c8c4b3a5b80e0187b284abc84566a7e784db.tar.gz
ferdium-app-46b8c8c4b3a5b80e0187b284abc84566a7e784db.tar.zst
ferdium-app-46b8c8c4b3a5b80e0187b284abc84566a7e784db.zip
Merge branch 'develop' into feature/features-api
Diffstat (limited to 'src/api')
-rw-r--r--src/api/FeaturesApi.js4
-rw-r--r--src/api/LocalApi.js8
-rw-r--r--src/api/server/LocalApi.js27
-rw-r--r--src/api/server/ServerApi.js68
4 files changed, 68 insertions, 39 deletions
diff --git a/src/api/FeaturesApi.js b/src/api/FeaturesApi.js
index 292dc80cc..c66f28f5b 100644
--- a/src/api/FeaturesApi.js
+++ b/src/api/FeaturesApi.js
@@ -3,8 +3,8 @@ export default class FeaturesApi {
3 this.server = server; 3 this.server = server;
4 } 4 }
5 5
6 base() { 6 default() {
7 return this.server.getBaseFeatures(); 7 return this.server.getDefaultFeatures();
8 } 8 }
9 9
10 features() { 10 features() {
diff --git a/src/api/LocalApi.js b/src/api/LocalApi.js
index 59d7d8fa2..741917104 100644
--- a/src/api/LocalApi.js
+++ b/src/api/LocalApi.js
@@ -4,6 +4,14 @@ export default class LocalApi {
4 this.local = local; 4 this.local = local;
5 } 5 }
6 6
7 getAppSettings() {
8 return this.local.getAppSettings();
9 }
10
11 updateAppSettings(data) {
12 return this.local.updateAppSettings(data);
13 }
14
7 getAppCacheSize() { 15 getAppCacheSize() {
8 return this.local.getAppCacheSize(); 16 return this.local.getAppCacheSize();
9 } 17 }
diff --git a/src/api/server/LocalApi.js b/src/api/server/LocalApi.js
index aa3a7d655..4814bba66 100644
--- a/src/api/server/LocalApi.js
+++ b/src/api/server/LocalApi.js
@@ -1,11 +1,30 @@
1import { remote } from 'electron'; 1import { ipcRenderer, remote } from 'electron';
2import du from 'du'; 2import du from 'du';
3 3
4import { getServicePartitionsDirectory } from '../../helpers/service-helpers.js'; 4import { getServicePartitionsDirectory } from '../../helpers/service-helpers.js';
5 5
6const debug = require('debug')('Franz:LocalApi');
7
6const { session } = remote; 8const { session } = remote;
7 9
8export default class LocalApi { 10export default class LocalApi {
11 // Settings
12 getAppSettings() {
13 return new Promise((resolve) => {
14 ipcRenderer.once('appSettings', (event, data) => {
15 debug('LocalApi::getAppSettings resolves', data);
16 resolve(data);
17 });
18
19 ipcRenderer.send('getAppSettings');
20 });
21 }
22
23 async updateAppSettings(data) {
24 debug('LocalApi::updateAppSettings resolves', data);
25 ipcRenderer.send('updateAppSettings', data);
26 }
27
9 // Services 28 // Services
10 async getAppCacheSize() { 29 async getAppCacheSize() {
11 const partitionsDir = getServicePartitionsDirectory(); 30 const partitionsDir = getServicePartitionsDirectory();
@@ -13,7 +32,7 @@ export default class LocalApi {
13 du(partitionsDir, (err, size) => { 32 du(partitionsDir, (err, size) => {
14 if (err) reject(err); 33 if (err) reject(err);
15 34
16 console.debug('LocalApi::getAppCacheSize resolves', size); 35 debug('LocalApi::getAppCacheSize resolves', size);
17 resolve(size); 36 resolve(size);
18 }); 37 });
19 }); 38 });
@@ -22,14 +41,14 @@ export default class LocalApi {
22 async clearCache(serviceId) { 41 async clearCache(serviceId) {
23 const s = session.fromPartition(`persist:service-${serviceId}`); 42 const s = session.fromPartition(`persist:service-${serviceId}`);
24 43
25 console.debug('LocalApi::clearCache resolves', serviceId); 44 debug('LocalApi::clearCache resolves', serviceId);
26 return new Promise(resolve => s.clearCache(resolve)); 45 return new Promise(resolve => s.clearCache(resolve));
27 } 46 }
28 47
29 async clearAppCache() { 48 async clearAppCache() {
30 const s = session.defaultSession; 49 const s = session.defaultSession;
31 50
32 console.debug('LocalApi::clearCache clearAppCache'); 51 debug('LocalApi::clearCache clearAppCache');
33 return new Promise(resolve => s.clearCache(resolve)); 52 return new Promise(resolve => s.clearCache(resolve));
34 } 53 }
35} 54}
diff --git a/src/api/server/ServerApi.js b/src/api/server/ServerApi.js
index ad7988bb2..164419951 100644
--- a/src/api/server/ServerApi.js
+++ b/src/api/server/ServerApi.js
@@ -27,13 +27,15 @@ import {
27 removeServicePartitionDirectory, 27 removeServicePartitionDirectory,
28} from '../../helpers/service-helpers.js'; 28} from '../../helpers/service-helpers.js';
29 29
30const debug = require('debug')('Franz:ServerApi');
31
30module.paths.unshift( 32module.paths.unshift(
31 getDevRecipeDirectory(), 33 getDevRecipeDirectory(),
32 getRecipeDirectory(), 34 getRecipeDirectory(),
33); 35);
34 36
35const { app } = remote; 37const { app } = remote;
36const fetch = remote.require('electron-fetch'); 38const { default: fetch } = remote.require('electron-fetch');
37 39
38const SERVER_URL = API; 40const SERVER_URL = API;
39const API_VERSION = 'v1'; 41const API_VERSION = 'v1';
@@ -55,7 +57,7 @@ export default class ServerApi {
55 } 57 }
56 const u = await request.json(); 58 const u = await request.json();
57 59
58 console.debug('ServerApi::login resolves', u); 60 debug('ServerApi::login resolves', u);
59 return u.token; 61 return u.token;
60 } 62 }
61 63
@@ -69,7 +71,7 @@ export default class ServerApi {
69 } 71 }
70 const u = await request.json(); 72 const u = await request.json();
71 73
72 console.debug('ServerApi::signup resolves', u); 74 debug('ServerApi::signup resolves', u);
73 return u.token; 75 return u.token;
74 } 76 }
75 77
@@ -82,7 +84,7 @@ export default class ServerApi {
82 throw request; 84 throw request;
83 } 85 }
84 86
85 console.debug('ServerApi::inviteUser'); 87 debug('ServerApi::inviteUser');
86 return true; 88 return true;
87 } 89 }
88 90
@@ -98,7 +100,7 @@ export default class ServerApi {
98 } 100 }
99 const r = await request.json(); 101 const r = await request.json();
100 102
101 console.debug('ServerApi::retrievePassword'); 103 debug('ServerApi::retrievePassword');
102 return r; 104 return r;
103 } 105 }
104 106
@@ -112,7 +114,7 @@ export default class ServerApi {
112 const data = await request.json(); 114 const data = await request.json();
113 115
114 const user = new UserModel(data); 116 const user = new UserModel(data);
115 console.debug('ServerApi::userInfo resolves', user); 117 debug('ServerApi::userInfo resolves', user);
116 118
117 return user; 119 return user;
118 } 120 }
@@ -128,7 +130,7 @@ export default class ServerApi {
128 const updatedData = await request.json(); 130 const updatedData = await request.json();
129 131
130 const user = Object.assign(updatedData, { data: new UserModel(updatedData.data) }); 132 const user = Object.assign(updatedData, { data: new UserModel(updatedData.data) });
131 console.debug('ServerApi::updateUserInfo resolves', user); 133 debug('ServerApi::updateUserInfo resolves', user);
132 return user; 134 return user;
133 } 135 }
134 136
@@ -141,7 +143,7 @@ export default class ServerApi {
141 } 143 }
142 const data = await request.json(); 144 const data = await request.json();
143 145
144 console.debug('ServerApi::deleteAccount resolves', data); 146 debug('ServerApi::deleteAccount resolves', data);
145 return data; 147 return data;
146 } 148 }
147 149
@@ -157,7 +159,7 @@ export default class ServerApi {
157 159
158 let services = await this._mapServiceModels(data); 160 let services = await this._mapServiceModels(data);
159 services = services.filter(service => service !== null); 161 services = services.filter(service => service !== null);
160 console.debug('ServerApi::getServices resolves', services); 162 debug('ServerApi::getServices resolves', services);
161 return services; 163 return services;
162 } 164 }
163 165
@@ -181,7 +183,7 @@ export default class ServerApi {
181 183
182 const service = Object.assign(serviceData, { data: await this._prepareServiceModel(serviceData.data) }); 184 const service = Object.assign(serviceData, { data: await this._prepareServiceModel(serviceData.data) });
183 185
184 console.debug('ServerApi::createService resolves', service); 186 debug('ServerApi::createService resolves', service);
185 return service; 187 return service;
186 } 188 }
187 189
@@ -205,7 +207,7 @@ export default class ServerApi {
205 207
206 const service = Object.assign(serviceData, { data: await this._prepareServiceModel(serviceData.data) }); 208 const service = Object.assign(serviceData, { data: await this._prepareServiceModel(serviceData.data) });
207 209
208 console.debug('ServerApi::updateService resolves', service); 210 debug('ServerApi::updateService resolves', service);
209 return service; 211 return service;
210 } 212 }
211 213
@@ -240,7 +242,7 @@ export default class ServerApi {
240 throw request; 242 throw request;
241 } 243 }
242 const serviceData = await request.json(); 244 const serviceData = await request.json();
243 console.debug('ServerApi::reorderService resolves', serviceData); 245 debug('ServerApi::reorderService resolves', serviceData);
244 return serviceData; 246 return serviceData;
245 } 247 }
246 248
@@ -255,13 +257,13 @@ export default class ServerApi {
255 257
256 removeServicePartitionDirectory(id, true); 258 removeServicePartitionDirectory(id, true);
257 259
258 console.debug('ServerApi::deleteService resolves', data); 260 debug('ServerApi::deleteService resolves', data);
259 return data; 261 return data;
260 } 262 }
261 263
262 // Features 264 // Features
263 async getBaseFeatures() { 265 async getDefaultFeatures() {
264 const request = await window.fetch(`${SERVER_URL}/${API_VERSION}/features/base`, this._prepareAuthRequest({ 266 const request = await window.fetch(`${SERVER_URL}/${API_VERSION}/features/default`, this._prepareAuthRequest({
265 method: 'GET', 267 method: 'GET',
266 })); 268 }));
267 if (!request.ok) { 269 if (!request.ok) {
@@ -270,7 +272,7 @@ export default class ServerApi {
270 const data = await request.json(); 272 const data = await request.json();
271 273
272 const features = data; 274 const features = data;
273 console.debug('ServerApi::getBaseFeatures resolves', features); 275 console.debug('ServerApi::getDefaultFeatures resolves', features);
274 return features; 276 return features;
275 } 277 }
276 278
@@ -306,7 +308,7 @@ export default class ServerApi {
306 308
307 this.recipes = this.recipes.concat(this._getDevRecipes()); 309 this.recipes = this.recipes.concat(this._getDevRecipes());
308 310
309 console.debug('StubServerApi::getInstalledRecipes resolves', this.recipes); 311 debug('StubServerApi::getInstalledRecipes resolves', this.recipes);
310 return this.recipes; 312 return this.recipes;
311 } 313 }
312 314
@@ -319,7 +321,7 @@ export default class ServerApi {
319 throw request; 321 throw request;
320 } 322 }
321 const recipes = await request.json(); 323 const recipes = await request.json();
322 console.debug('ServerApi::getRecipeUpdates resolves', recipes); 324 debug('ServerApi::getRecipeUpdates resolves', recipes);
323 return recipes; 325 return recipes;
324 } 326 }
325 327
@@ -334,7 +336,7 @@ export default class ServerApi {
334 const data = await request.json(); 336 const data = await request.json();
335 337
336 const recipePreviews = this._mapRecipePreviewModel(data); 338 const recipePreviews = this._mapRecipePreviewModel(data);
337 console.debug('ServerApi::getRecipes resolves', recipePreviews); 339 debug('ServerApi::getRecipes resolves', recipePreviews);
338 340
339 return recipePreviews; 341 return recipePreviews;
340 } 342 }
@@ -351,7 +353,7 @@ export default class ServerApi {
351 // data = this._addLocalRecipesToPreviews(data); 353 // data = this._addLocalRecipesToPreviews(data);
352 354
353 const recipePreviews = this._mapRecipePreviewModel(data); 355 const recipePreviews = this._mapRecipePreviewModel(data);
354 console.debug('ServerApi::getFeaturedRecipes resolves', recipePreviews); 356 debug('ServerApi::getFeaturedRecipes resolves', recipePreviews);
355 return recipePreviews; 357 return recipePreviews;
356 } 358 }
357 359
@@ -365,7 +367,7 @@ export default class ServerApi {
365 const data = await request.json(); 367 const data = await request.json();
366 368
367 const recipePreviews = this._mapRecipePreviewModel(data); 369 const recipePreviews = this._mapRecipePreviewModel(data);
368 console.debug('ServerApi::searchRecipePreviews resolves', recipePreviews); 370 debug('ServerApi::searchRecipePreviews resolves', recipePreviews);
369 return recipePreviews; 371 return recipePreviews;
370 } 372 }
371 373
@@ -379,7 +381,7 @@ export default class ServerApi {
379 381
380 fs.ensureDirSync(recipeTempDirectory); 382 fs.ensureDirSync(recipeTempDirectory);
381 const res = await fetch(packageUrl); 383 const res = await fetch(packageUrl);
382 console.debug('Recipe downloaded', recipeId); 384 debug('Recipe downloaded', recipeId);
383 const buffer = await res.buffer(); 385 const buffer = await res.buffer();
384 fs.writeFileSync(archivePath, buffer); 386 fs.writeFileSync(archivePath, buffer);
385 387
@@ -421,7 +423,7 @@ export default class ServerApi {
421 const data = await request.json(); 423 const data = await request.json();
422 424
423 const plan = new PlanModel(data); 425 const plan = new PlanModel(data);
424 console.debug('ServerApi::getPlans resolves', plan); 426 debug('ServerApi::getPlans resolves', plan);
425 return plan; 427 return plan;
426 } 428 }
427 429
@@ -437,7 +439,7 @@ export default class ServerApi {
437 } 439 }
438 const data = await request.json(); 440 const data = await request.json();
439 441
440 console.debug('ServerApi::getHostedPage resolves', data); 442 debug('ServerApi::getHostedPage resolves', data);
441 return data; 443 return data;
442 } 444 }
443 445
@@ -450,7 +452,7 @@ export default class ServerApi {
450 } 452 }
451 const data = await request.json(); 453 const data = await request.json();
452 454
453 console.debug('ServerApi::getPaymentDashboardUrl resolves', data); 455 debug('ServerApi::getPaymentDashboardUrl resolves', data);
454 return data; 456 return data;
455 } 457 }
456 458
@@ -463,7 +465,7 @@ export default class ServerApi {
463 } 465 }
464 const data = await request.json(); 466 const data = await request.json();
465 const orders = this._mapOrderModels(data); 467 const orders = this._mapOrderModels(data);
466 console.debug('ServerApi::getSubscriptionOrders resolves', orders); 468 debug('ServerApi::getSubscriptionOrders resolves', orders);
467 return orders; 469 return orders;
468 } 470 }
469 471
@@ -480,7 +482,7 @@ export default class ServerApi {
480 } 482 }
481 const data = await request.json(); 483 const data = await request.json();
482 const news = this._mapNewsModels(data); 484 const news = this._mapNewsModels(data);
483 console.debug('ServerApi::getLatestNews resolves', news); 485 debug('ServerApi::getLatestNews resolves', news);
484 return news; 486 return news;
485 } 487 }
486 488
@@ -494,7 +496,7 @@ export default class ServerApi {
494 throw request; 496 throw request;
495 } 497 }
496 498
497 console.debug('ServerApi::hideNews resolves', id); 499 debug('ServerApi::hideNews resolves', id);
498 } 500 }
499 501
500 // Health Check 502 // Health Check
@@ -505,7 +507,7 @@ export default class ServerApi {
505 if (!request.ok) { 507 if (!request.ok) {
506 throw request; 508 throw request;
507 } 509 }
508 console.debug('ServerApi::healthCheck resolves'); 510 debug('ServerApi::healthCheck resolves');
509 } 511 }
510 512
511 async getLegacyServices() { 513 async getLegacyServices() {
@@ -531,7 +533,7 @@ export default class ServerApi {
531 return service; 533 return service;
532 })); 534 }));
533 535
534 console.debug('ServerApi::getLegacyServices resolves', services); 536 debug('ServerApi::getLegacyServices resolves', services);
535 return services; 537 return services;
536 } 538 }
537 } catch (err) { 539 } catch (err) {
@@ -564,7 +566,7 @@ export default class ServerApi {
564 566
565 return new ServiceModel(service, recipe); 567 return new ServiceModel(service, recipe);
566 } catch (e) { 568 } catch (e) {
567 console.debug(e); 569 debug(e);
568 return null; 570 return null;
569 } 571 }
570 } 572 }
@@ -582,7 +584,7 @@ export default class ServerApi {
582 584
583 await this.getRecipePackage(recipeId); 585 await this.getRecipePackage(recipeId);
584 586
585 console.debug('Rerun ServerAPI::getInstalledRecipes'); 587 debug('Rerun ServerAPI::getInstalledRecipes');
586 await this.getInstalledRecipes(); 588 await this.getInstalledRecipes();
587 589
588 recipe = this.recipes.find(r => r.id === recipeId); 590 recipe = this.recipes.find(r => r.id === recipeId);
@@ -682,7 +684,7 @@ export default class ServerApi {
682 684
683 return recipes; 685 return recipes;
684 } catch (err) { 686 } catch (err) {
685 console.debug('Could not load dev recipes'); 687 debug('Could not load dev recipes');
686 return false; 688 return false;
687 } 689 }
688 } 690 }