aboutsummaryrefslogtreecommitdiff
path: root/src/requests.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/requests.js')
-rw-r--r--src/requests.js78
1 files changed, 76 insertions, 2 deletions
diff --git a/src/requests.js b/src/requests.js
index 06c5577..5452b0d 100644
--- a/src/requests.js
+++ b/src/requests.js
@@ -7,6 +7,8 @@ const { https } = require("follow-redirects");
// all requests results are stored in this file
const cachePath = path.join(app.getPath("cache"), "requests.json");
const NORTHSTAR_LATEST_RELEASE_KEY = "nsLatestRelease";
+const NORTHSTAR_RELEASE_NOTES_KEY = "nsReleaseNotes";
+const VIPER_RELEASE_NOTES_KEY = "vpReleaseNotes";
function _saveCache(data) {
@@ -30,7 +32,6 @@ async function getLatestNsVersion() {
let cache = _getRequestsCache();
if (cache[NORTHSTAR_LATEST_RELEASE_KEY] && (Date.now() - cache[NORTHSTAR_LATEST_RELEASE_KEY]["time"]) < 5 * 60 * 1000) {
- console.log(`returning ${NORTHSTAR_LATEST_RELEASE_KEY} data from cache`);
resolve( cache[NORTHSTAR_LATEST_RELEASE_KEY]["body"]["tag_name"] );
} else {
https.get({
@@ -70,8 +71,81 @@ function getLatestNsVersionLink() {
return cache[NORTHSTAR_LATEST_RELEASE_KEY]["body"].assets[0].browser_download_url;
}
+async function getNsReleaseNotes() {
+ return new Promise(resolve => {
+ let cache = _getRequestsCache();
+
+ if (cache[NORTHSTAR_RELEASE_NOTES_KEY] && (Date.now() - cache[NORTHSTAR_RELEASE_NOTES_KEY]["time"]) < 5 * 60 * 1000) {
+ resolve( cache[NORTHSTAR_RELEASE_NOTES_KEY]["body"] );
+ } else {
+ https.get({
+ host: "api.github.com",
+ port: 443,
+ path: "/repos/R2Northstar/Northstar/releases",
+ method: "GET",
+ headers: { "User-Agent": "viper" }
+ },
+
+ response => {
+ response.setEncoding("utf8");
+ let responseData = "";
+
+ response.on("data", data => {
+ responseData += data;
+ });
+
+ response.on("end", _ => {
+ cache[NORTHSTAR_RELEASE_NOTES_KEY] = {
+ "time": Date.now(),
+ "body": JSON.parse(responseData)
+ };
+ _saveCache(cache);
+ resolve( cache[NORTHSTAR_RELEASE_NOTES_KEY]["body"] );
+ });
+ });
+ }
+ });
+}
+
+async function getVpReleaseNotes() {
+ return new Promise(resolve => {
+ let cache = _getRequestsCache();
+
+ if (cache[VIPER_RELEASE_NOTES_KEY] && (Date.now() - cache[VIPER_RELEASE_NOTES_KEY]["time"]) < 5 * 60 * 1000) {
+ resolve( cache[VIPER_RELEASE_NOTES_KEY]["body"] );
+ } else {
+ https.get({
+ host: "api.github.com",
+ port: 443,
+ path: "/repos/0negal/viper/releases",
+ method: "GET",
+ headers: { "User-Agent": "viper" }
+ },
+
+ response => {
+ response.setEncoding("utf8");
+ let responseData = "";
+
+ response.on("data", data => {
+ responseData += data;
+ });
+
+ response.on("end", _ => {
+ cache[VIPER_RELEASE_NOTES_KEY] = {
+ "time": Date.now(),
+ "body": JSON.parse(responseData)
+ };
+ _saveCache(cache);
+ resolve( cache[VIPER_RELEASE_NOTES_KEY]["body"] );
+ });
+ });
+ }
+ });
+}
module.exports = {
getLatestNsVersion,
- getLatestNsVersionLink
+ getLatestNsVersionLink,
+ getNsReleaseNotes,
+ getVpReleaseNotes
};