mirror of https://github.com/BTCPrivate/copay.git
ref methods
This commit is contained in:
parent
94dd6fd3e8
commit
272770f4e4
|
@ -12,55 +12,50 @@ export class LatestReleaseProvider {
|
||||||
constructor(public http: Http, private app: AppProvider) {
|
constructor(public http: Http, private app: AppProvider) {
|
||||||
console.log('Hello LatestRelease Provider');
|
console.log('Hello LatestRelease Provider');
|
||||||
this.LATEST_RELEASE_URL = 'https://api.github.com/repos/bitpay/copay/releases/latest';
|
this.LATEST_RELEASE_URL = 'https://api.github.com/repos/bitpay/copay/releases/latest';
|
||||||
this.appVersion = this.app.info.version;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
checkLatestRelease(): Promise<any> {
|
getCurrentAppVersion() {
|
||||||
return new Promise((resolve, reject) => {
|
return this.appVersion = this.app.info.version;
|
||||||
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)
|
return this.http.get(this.LATEST_RELEASE_URL)
|
||||||
.map((response) => response.json())
|
.map((response) => response.json())
|
||||||
.toPromise()
|
.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]
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue