ref methods

This commit is contained in:
JDonadio 2017-09-29 11:06:27 -03:00
parent 94dd6fd3e8
commit 272770f4e4
No known key found for this signature in database
GPG Key ID: EC1F4E04B2BFA730
1 changed files with 40 additions and 45 deletions

View File

@ -12,55 +12,50 @@ export class LatestReleaseProvider {
constructor(public http: Http, private app: AppProvider) {
console.log('Hello LatestRelease Provider');
this.LATEST_RELEASE_URL = 'https://api.github.com/repos/bitpay/copay/releases/latest';
this.appVersion = this.app.info.version;
}
getCurrentAppVersion() {
return this.appVersion = this.app.info.version;
}
checkLatestRelease(): Promise<any> {
return new Promise((resolve, reject) => {
let self = this;
self.requestLatestRelease().then((release: any) => {
var currentVersion = this.appVersion;
var latestVersion = release.tag_name;
if (!verifyTagFormat(currentVersion))
reject('Cannot verify the format of version tag: ' + currentVersion);
if (!verifyTagFormat(latestVersion))
reject('Cannot verify the format of latest release tag: ' + latestVersion);
var current = formatTagNumber(currentVersion);
var latest = formatTagNumber(latestVersion);
if (latest.major < current.major || (latest.major == current.major && latest.minor <= current.minor))
resolve(false);
else
resolve(true);
function verifyTagFormat(tag: string) {
var regex = /^v?\d+\.\d+\.\d+$/i;
return regex.exec(tag);
};
function formatTagNumber(tag: string) {
var formattedNumber = tag.replace(/^v/i, '').split('.');
return {
major: +formattedNumber[0],
minor: +formattedNumber[1],
patch: +formattedNumber[2]
};
};
}).catch((error) => {
console.log("Error: ", error);
reject(error);
});
});
}
requestLatestRelease(): Promise<any> {
getLatestAppVersion(): Promise<any> {
return this.http.get(this.LATEST_RELEASE_URL)
.map((response) => response.json())
.toPromise()
.catch((error) => console.log("Error", error));
.catch((error) => (error));
}
checkForUpdates(currentVersion: string, latestVersion: string) {
var result = {
updateAvailable: false,
error: null
};
if (!verifyTagFormat(currentVersion))
return (result.error = 'Cannot verify the format of version tag: ' + currentVersion);
if (!verifyTagFormat(latestVersion))
return (result.error = 'Cannot verify the format of latest release tag: ' + latestVersion);
var current = formatTagNumber(currentVersion);
var latest = formatTagNumber(latestVersion);
if (latest.major < current.major || (latest.major == current.major && latest.minor <= current.minor))
return (result);
else
return (result.updateAvailable = true);
function verifyTagFormat(tag: string) {
var regex = /^v?\d+\.\d+\.\d+$/i;
return regex.exec(tag);
};
function formatTagNumber(tag: string) {
var formattedNumber = tag.replace(/^v/i, '').split('.');
return {
major: +formattedNumber[0],
minor: +formattedNumber[1],
patch: +formattedNumber[2]
};
};
};
}