-
+
Glidera
diff --git a/src/js/controllers/buyGlidera.js b/src/js/controllers/buyGlidera.js
new file mode 100644
index 000000000..4064c59b8
--- /dev/null
+++ b/src/js/controllers/buyGlidera.js
@@ -0,0 +1,13 @@
+'use strict';
+
+angular.module('copayApp.controllers').controller('buyGlideraController',
+ function() {
+
+ this.getBuyPrice = function(token, price) {
+ var self = this;
+ glideraService.buyPrice(token, price, function(error, sellPrice) {
+ self.sellPrice = sellPrice;
+ });
+ };
+
+ });
diff --git a/src/js/controllers/glidera.js b/src/js/controllers/glidera.js
new file mode 100644
index 000000000..202f5490e
--- /dev/null
+++ b/src/js/controllers/glidera.js
@@ -0,0 +1,13 @@
+'use strict';
+
+angular.module('copayApp.controllers').controller('glideraController',
+ function(glideraService) {
+
+ this.init = function(token) {
+ var self = this;
+ glideraService.getTransactions(token, function(error, txs) {
+ self.txs = txs;
+ });
+ };
+
+ });
diff --git a/src/js/controllers/sellGlidera.js b/src/js/controllers/sellGlidera.js
new file mode 100644
index 000000000..e2ac49514
--- /dev/null
+++ b/src/js/controllers/sellGlidera.js
@@ -0,0 +1,14 @@
+'use strict';
+
+angular.module('copayApp.controllers').controller('sellGlideraController',
+ function(glideraService) {
+
+ this.getSellPrice = function(token, price) {
+ var self = this;
+ glideraService.sellPrice(token, price, function(error, sellPrice) {
+ self.sellPrice = sellPrice;
+ });
+ };
+
+
+ });
diff --git a/src/js/routes.js b/src/js/routes.js
index 5c175d76f..0b13d4e8f 100644
--- a/src/js/routes.js
+++ b/src/js/routes.js
@@ -288,6 +288,36 @@ angular
},
}
})
+ .state('glidera', {
+ url: '/glidera',
+ walletShouldBeComplete: true,
+ needProfile: true,
+ views: {
+ 'main': {
+ templateUrl: 'views/glidera.html'
+ },
+ }
+ })
+ .state('buyGlidera', {
+ url: '/buy',
+ walletShouldBeComplete: true,
+ needProfile: true,
+ views: {
+ 'main': {
+ templateUrl: 'views/buyGlidera.html'
+ },
+ }
+ })
+ .state('sellGlidera', {
+ url: '/sell',
+ walletShouldBeComplete: true,
+ needProfile: true,
+ views: {
+ 'main': {
+ templateUrl: 'views/sellGlidera.html'
+ },
+ }
+ })
.state('preferencesGlidera', {
url: '/preferencesGlidera',
@@ -500,9 +530,12 @@ angular
payment: -1,
preferences: 11,
+ glidera: 11,
preferencesColor: 12,
backup: 12,
preferencesAdvanced: 12,
+ buyGlidera: 12,
+ sellGlidera: 12,
preferencesGlidera: 12,
delete: 13,
preferencesLanguage: 12,
diff --git a/src/js/services/glideraService.js b/src/js/services/glideraService.js
index 0c744749a..60f5e127d 100644
--- a/src/js/services/glideraService.js
+++ b/src/js/services/glideraService.js
@@ -30,13 +30,13 @@ angular.module('copayApp.services').factory('glideraService', function($http, $l
client_secret: CLIENT_SECRET,
redirect_uri: REDIRECT_URI
}
- }
+ };
$http(req).then(function(data) {
- $log.info('Authorization Access Token: SUCCESS');
+ $log.info('Glidera Authorization Access Token: SUCCESS');
return cb(null, data);
}, function(data) {
- $log.error('Authorization Access Token: ERROR ' + data.statusText);
+ $log.error('Glidera Authorization Access Token: ERROR ' + data.statusText);
return cb(data.statusText);
});
};
@@ -47,10 +47,8 @@ angular.module('copayApp.services').factory('glideraService', function($http, $l
url: HOST + '/api/v1' + endpoint,
headers: {
'Content-Type': 'application/json',
- 'Accept': 'application/json'
- },
- params: {
- access_token: token
+ 'Accept': 'application/json',
+ 'Authorization': 'Bearer ' + token
}
};
};
@@ -58,10 +56,10 @@ angular.module('copayApp.services').factory('glideraService', function($http, $l
root.getPermissions = function(token, cb) {
if (!token) return cb('Invalid Token');
$http(_get('/oauth/token', token)).then(function(data) {
- $log.info('Access Token Permissions: SUCCESS');
+ $log.info('Glidera Access Token Permissions: SUCCESS');
return cb(null, data.data);
}, function(data) {
- $log.error('Access Token Permissions: ERROR ' + data.statusText);
+ $log.error('Glidera Access Token Permissions: ERROR ' + data.statusText);
return cb(data.statusText);
});
};
@@ -69,10 +67,10 @@ angular.module('copayApp.services').factory('glideraService', function($http, $l
root.getEmail = function(token, cb) {
if (!token) return cb('Invalid Token');
$http(_get('/user/email', token)).then(function(data) {
- $log.info('Get Email: SUCCESS');
+ $log.info('Glidera Get Email: SUCCESS');
return cb(null, data.data);
}, function(data) {
- $log.error('Get Email: ERROR ' + data.statusText);
+ $log.error('Glidera Get Email: ERROR ' + data.statusText);
return cb(data.statusText);
});
};
@@ -80,10 +78,10 @@ angular.module('copayApp.services').factory('glideraService', function($http, $l
root.getPersonalInfo = function(token, cb) {
if (!token) return cb('Invalid Token');
$http(_get('/user/personalinfo', token)).then(function(data) {
- $log.info('Get Personal Info: SUCCESS');
+ $log.info('Glidera Get Personal Info: SUCCESS');
return cb(null, data.data);
}, function(data) {
- $log.error('Get Personal Info: ERROR ' + data.statusText);
+ $log.error('Glidera Get Personal Info: ERROR ' + data.statusText);
return cb(data.statusText);
});
};
@@ -91,10 +89,10 @@ angular.module('copayApp.services').factory('glideraService', function($http, $l
root.getStatus = function(token, cb) {
if (!token) return cb('Invalid Token');
$http(_get('/user/status', token)).then(function(data) {
- $log.info('User Status: SUCCESS');
+ $log.info('Glidera User Status: SUCCESS');
return cb(null, data.data);
}, function(data) {
- $log.error('User Status: ERROR ' + data.statusText);
+ $log.error('Glidera User Status: ERROR ' + data.statusText);
return cb(data.statusText);
});
};
@@ -102,10 +100,107 @@ angular.module('copayApp.services').factory('glideraService', function($http, $l
root.getLimits = function(token, cb) {
if (!token) return cb('Invalid Token');
$http(_get('/user/limits', token)).then(function(data) {
- $log.info('Transaction Limits: SUCCESS');
+ $log.info('Glidera Transaction Limits: SUCCESS');
return cb(null, data.data);
}, function(data) {
- $log.error('Transaction Limits: ERROR ' + data.statusText);
+ $log.error('Glidera Transaction Limits: ERROR ' + data.statusText);
+ return cb(data.statusText);
+ });
+ };
+
+ root.getTransactions = function(token, cb) {
+ if (!token) return cb('Invalid Token');
+ $http(_get('/transaction', token)).then(function(data) {
+ $log.info('Glidera Transaction: SUCCESS');
+ return cb(null, data.data);
+ }, function(data) {
+ $log.error('Glidera Transaction: ERROR ' + data.statusText);
+ return cb(data.statusText);
+ });
+ };
+
+ root.getSellAddress = function(token, cb) {
+ if (!token) return cb('Invalid Token');
+ $http(_get('/user/create_sell_address', token)).then(function(data) {
+ $log.info('Glidera Create Sell Address: SUCCESS');
+ return cb(null, data.data);
+ }, function(data) {
+ $log.error('Glidera Create Sell Address: ERROR ' + data.statusText);
+ return cb(data.statusText);
+ });
+ };
+
+ var _post = function(endpoint, token, data) {
+ return {
+ method: 'POST',
+ url: HOST + '/api/v1' + endpoint,
+ headers: {
+ 'Content-Type': 'application/json',
+ 'Accept': 'application/json',
+ 'Authorization': 'Bearer ' + token
+ },
+ data: data
+ };
+ };
+
+ root.sellPrice = function(token, price, cb) {
+ var data = {
+ qty: price.qty,
+ fiat: price.fiat
+ };
+ $http(_post('/prices/sell', token, data)).then(function(data) {
+ $log.info('Glidera Sell Price: SUCCESS');
+ return cb(null, data);
+ }, function(data) {
+ $log.error('Glidera Sell Price: ERROR ' + data.statusText);
+ return cb(data.statusText);
+ });
+ };
+
+ root.sell = function(token, data, cb) {
+ var data = {
+ refundAddress: data.refundAddress,
+ signedTransaction: data.signedTransaction,
+ priceUuid: data.priceUuid,
+ useCurrentPrice: data.useCurrentPrice,
+ ip: data.ip
+ };
+ $http(_post('/prices/buy', token, data)).then(function(data) {
+ $log.info('Glidera Buy: SUCCESS');
+ return cb(null, data);
+ }, function(data) {
+ $log.error('Glidera Buy: ERROR ' + data.statusText);
+ return cb(data.statusText);
+ });
+ };
+
+ root.buyPrice = function(token, price, cb) {
+ var data = {
+ qty: price.qty,
+ fiat: price.fiat
+ };
+ $http(_post('/prices/buy', token, data)).then(function(data) {
+ $log.info('Glidera Buy Price: SUCCESS');
+ return cb(null, data);
+ }, function(data) {
+ $log.error('Glidera Buy Price: ERROR ' + data.statusText);
+ return cb(data.statusText);
+ });
+ };
+
+ root.buy = function(token, data, cb) {
+ var data = {
+ destinationAddress: data.destinationAddress,
+ qty: data.qty,
+ priceUuid: data.priceUuid,
+ useCurrentPrice: data.useCurrentPrice,
+ ip: data.ip
+ };
+ $http(_post('/prices/buy', token, data)).then(function(data) {
+ $log.info('Glidera Buy: SUCCESS');
+ return cb(null, data);
+ }, function(data) {
+ $log.error('Glidera Buy: ERROR ' + data.statusText);
return cb(data.statusText);
});
};