aboutsummaryrefslogtreecommitdiffstats
path: root/src/features/announcements/api.js
diff options
context:
space:
mode:
authorLibravatar Stefan Malzner <stefan@adlk.io>2019-04-13 20:58:37 +0200
committerLibravatar Stefan Malzner <stefan@adlk.io>2019-04-13 20:58:37 +0200
commit8e623e84cf21068561217a509c0761d524dfbc29 (patch)
treea83f307c3ce087169e3a1d55418fa78a71b7b4dc /src/features/announcements/api.js
parentUse store reactions (diff)
parentMerge branch 'feature/announcements' into develop (diff)
downloadferdium-app-8e623e84cf21068561217a509c0761d524dfbc29.tar.gz
ferdium-app-8e623e84cf21068561217a509c0761d524dfbc29.tar.zst
ferdium-app-8e623e84cf21068561217a509c0761d524dfbc29.zip
Merge branch 'develop' into chore/streamline-dashboard
Diffstat (limited to 'src/features/announcements/api.js')
-rw-r--r--src/features/announcements/api.js33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/features/announcements/api.js b/src/features/announcements/api.js
new file mode 100644
index 000000000..a581bd8de
--- /dev/null
+++ b/src/features/announcements/api.js
@@ -0,0 +1,33 @@
1import { remote } from 'electron';
2import Request from '../../stores/lib/Request';
3import { API, API_VERSION } from '../../environment';
4
5const debug = require('debug')('Franz:feature:announcements:api');
6
7export const announcementsApi = {
8 async getCurrentVersion() {
9 debug('getting current version of electron app');
10 return Promise.resolve(remote.app.getVersion());
11 },
12
13 async getChangelog(version) {
14 debug('fetching release changelog from Github');
15 const url = `https://api.github.com/repos/meetfranz/franz/releases/tags/v${version}`;
16 const request = await window.fetch(url, { method: 'GET' });
17 if (!request.ok) return null;
18 const data = await request.json();
19 return data.body;
20 },
21
22 async getAnnouncement(version) {
23 debug('fetching release announcement from api');
24 const url = `${API}/${API_VERSION}/announcements/${version}`;
25 const response = await window.fetch(url, { method: 'GET' });
26 if (!response.ok) return null;
27 return response.json();
28 },
29};
30
31export const getCurrentVersionRequest = new Request(announcementsApi, 'getCurrentVersion');
32export const getChangelogRequest = new Request(announcementsApi, 'getChangelog');
33export const getAnnouncementRequest = new Request(announcementsApi, 'getAnnouncement');