refactor latestReleaseService to new format

This commit is contained in:
Sebastiaan Pasma 2018-09-06 13:16:32 +02:00
commit 828cb927dc
No known key found for this signature in database
GPG key ID: 9A2B0C8B95A1D26F

View file

@ -1,13 +1,26 @@
'use strict'; 'use strict';
angular.module('copayApp.services')
.factory('latestReleaseService', function latestReleaseServiceFactory($log, $http, $ionicPopup, configService, externalLinkService, gettextCatalog, platformInfo) {
var root = {}; (function() {
root.checkLatestRelease = function(cb) { angular
.module('bitcoincom.services')
.factory('latestReleaseService', latestReleaseService);
function latestReleaseService($log, $http, $ionicPopup, configService, externalLinkService, gettextCatalog, platformInfo) {
var service = {
// Functions
checkLatestRelease: checkLatestRelease,
requestLatestRelease: requestLatestRelease,
showUpdatePopup: showUpdatePopup
};
return service;
function checkLatestRelease(cb) {
var releaseURL = configService.getDefaults().release.url; var releaseURL = configService.getDefaults().release.url;
requestLatestRelease(releaseURL, function(err, releaseData) { requestLatestRelease(releaseURL, function (err, releaseData) {
if (err) return cb(err); if (err) return cb(err);
var currentVersion = window.version; var currentVersion = window.version;
var latestVersion = releaseData.tag_name; var latestVersion = releaseData.tag_name;
@ -45,15 +58,14 @@ angular.module('copayApp.services')
$log.debug('A new version is available: ' + latestVersion); $log.debug('A new version is available: ' + latestVersion);
//
var releaseNotes = false; var releaseNotes = false;
if (releaseData.body) { if (releaseData.body) {
var releaseLines = releaseData.body.split('\n'); var releaseLines = releaseData.body.split('\n');
for (var lineNum in releaseLines) { for (var lineNum in releaseLines) {
if (releaseLines[lineNum].substring(0, 2) === "# ") { if (releaseLines[lineNum].substring(0, 2) === "# ") {
releaseLines[lineNum] = "<strong>"+releaseLines[lineNum].substring(2)+"</strong>"; releaseLines[lineNum] = "<strong>" + releaseLines[lineNum].substring(2) + "</strong>";
} else if (releaseLines[lineNum].substring(0, 2) === "- ") { } else if (releaseLines[lineNum].substring(0, 2) === "- ") {
releaseLines[lineNum] = "&bull; "+releaseLines[lineNum].substring(2); releaseLines[lineNum] = "&bull; " + releaseLines[lineNum].substring(2);
} }
} }
releaseNotes = releaseLines.join('\n'); releaseNotes = releaseLines.join('\n');
@ -76,13 +88,13 @@ angular.module('copayApp.services')
var formattedNumber = tag.replace(/^v/i, '').split('.'); var formattedNumber = tag.replace(/^v/i, '').split('.');
return { return {
major: +(formattedNumber[0]?+formattedNumber[0]:0), major: +(formattedNumber[0] ? +formattedNumber[0] : 0),
minor: +(formattedNumber[1]?+formattedNumber[1]:0), minor: +(formattedNumber[1] ? +formattedNumber[1] : 0),
patch: +(formattedNumber[2]?+formattedNumber[2]:0), patch: +(formattedNumber[2] ? +formattedNumber[2] : 0),
label: label /* XX SP: Maybe we can use this in a later stage (with for example 1.0.0-rc2 the value will be "rc2" and false if there is no label) */ label: label /* XX SP: Maybe we can use this in a later stage (with for example 1.0.0-rc2 the value will be "rc2" and false if there is no label) */
}; };
} }
}; }
function requestLatestRelease(releaseURL, cb) { function requestLatestRelease(releaseURL, cb) {
$log.debug('Retrieving latest release information...'); $log.debug('Retrieving latest release information...');
@ -93,15 +105,15 @@ angular.module('copayApp.services')
json: true json: true
}; };
$http(request).then(function(release) { $http(request).then(function (release) {
$log.debug('Latest release: ' + release.data.name); $log.debug('Latest release: ' + release.data.name);
return cb(null, release.data); return cb(null, release.data);
}, function(err) { }, function (err) {
return cb('Cannot get the release information: ' + err); return cb('Cannot get the release information: ' + err);
}); });
} }
root.showUpdatePopup = function () { function showUpdatePopup() {
var buttons = []; var buttons = [];
if (!platformInfo.isIOS) { // There is no GitHub-release for iPhone if (!platformInfo.isIOS) { // There is no GitHub-release for iPhone
@ -163,7 +175,6 @@ angular.module('copayApp.services')
buttons: buttons buttons: buttons
}); });
} }
}; }
}
return root; })();
});