Skip to content
Snippets Groups Projects
Select Git revision
  • d774abf568d4874e539159057a0d47197692229b
  • master default
2 results

service.js

Blame
  • user avatar
    Jérémy Guiselin authored
    d774abf5
    History
    service.js 1.85 KiB
    (function (angular) {
        "use strict";
        /**
         * @ngdoc service
         * @name starter.PurchaseService
         *
         * @description
         *
         * A service for purchasing products
         *
         * @ngInject
         */
        function PurchaseService($http, $state, ToastService, constantConfig) {
            return {
    
              buyContent : function (uuid, purchaseId, leagues) {
                var self = this;
                var transactionData = {};
                if (window.cordova) {
                  inAppPurchase
                    .subscribe(purchaseId)
                    .then(function (data) {
                      transactionData = {
                        transactionId: data.transactionId,
                        uuid: uuid,
                        leagues: leagues
                      };
                      window.facebookConnectPlugin.logEvent('buy_'+purchaseId);
                      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);