Skip to content
Snippets Groups Projects
Select Git revision
  • 4de5d732cde86a6f4387703b1a2c20ea3158f0db
  • main default
2 results

stats.py

Blame
  • service.js 2.31 KiB
    (function (angular) {
        "use strict";
        /**
         * @ngdoc service
         * @name starter.PurchaseService
         *
         * @description
         *
         * A service for purchasing products
         *
         * @ngInject
         */
        function PurchaseService($http, $state, ToastService, constantConfig, purchaseConfig) {
            return {
    
              getProducts: function (sport) {
                if (window.cordova) {
                  var products = [];
                  inAppPurchase
                  .getProducts(purchaseConfig[sport])
                  .then(function (storeProducts) {
                    products = storeProducts;
                  })
                  .catch(function (err) {
                    ToastService.show(err, 'long', 'bottom');
                  });
    
                  return products;
                } else {
                  return purchaseConfig['mock'][sport];
                }
              },
    
              buyContent : function (uuid, purchaseId, leagues) {
                var self = this;
                var transactionData = {};
                if (window.cordova) {
                  inAppPurchase
                    .buy(purchaseId)
                    .then(function (data) {
                      transactionData = {
                        transactionId: data.transactionId,
                        uuid: uuid,
                        leagues: leagues
                      };
                      self.savePurchase(transactionData);
                    })
                    .catch(function (err) {
                      ToastService.show('purchase_payment_error', 'long', 'center');
                    });
                } else {
                  transactionData = {
                    transactionId: Math.random().toString(36).substring(7),
                    uuid: uuid,
                    leagues: leagues
                  };
                  self.savePurchase(transactionData);
                }
    
              },
    
              savePurchase: function (transactionData) {
                $http.post(constantConfig.apiUrl + 'save-purchase', transactionData)
                  .then(function successCallback() {
                    $state.reload();
                    ToastService.show('purchase_ok', 'long', 'center');
                  }, function errorCallback() {
                    ToastService.show('purchase_internal_error', 'long', 'center');
                  });
              }
            };
    
          }
    
        angular.module('starter')
            .service('PurchaseService', PurchaseService)
        ;
    })(angular);