SY_MB_Transactions.js

This is the actual response handling and processing of the web service calls that are made by the MobiliserClient class for mBanking.

1       /**
2        *  @overview
3        * This is the actual response handling and processing of the web service calls
4        * that are made by the MobiliserClient class for mBanking. Any manipulation of
5        * the response, extraction of needed data and the making of Data Objects (DO)
6        * out of the XML document would be inserted here.
7        *
8        * @name SY_MB_Transactions.js
9        * @author SAP AG
10       * @version 1.0
11       *
12       */
13      
14      /**
15       * @description Callback handler for GetNetworkProvider service call
16       */
17      function getNetworkProvidersBack(r) {
18          hideProgress();
19          var rCode = getStatusCode(r);
20          if (rCode == '0') {
21              networkProviders = parseNetworkProviders(r);
22              listNetworkProviders(networkProviders);
23          } else {
24              _alertBox(Str_msg_failupdatealert + getErrorMessage(r));
25              $('#aas_title').html(Str_msg_editalertfailed);
26          }
27          appstate = trans.TRAN_IDLE;
28      }
29      
30      /**
31       * @description Parses the response of NetworkProvider service call
32       * @param r
33       */
34      function parseNetworkProviders(r) {
35          networkProviders = []; //Remove old entries from the array.
36          if(r.lookupEntities != null) {
37              for(var i = 0;i < r.lookupEntities.length;i++) {
38                  var oi = new NetworkProvider();
39                  //Parsing logic goes here
40                  oi.id = r.lookupEntities[i].id;
41                  oi.provider = r.lookupEntities[i].name;
42                  networkProviders.push(oi);
43              }
44          }
45          return networkProviders;
46      }
47      
48      /**
49       * @description ResponseHandler for getCurrencies web service call
50       * @param r
51       */
52      function getCurrenciesBack(r) {
53          hideProgress();
54          var rCode = getStatusCode(r);
55          if (rCode == '0') {
56              currencies = parseCurrencies(r);
57              if(currencies && currencies.length > 0) {
58                  listCurrencies('#fx_fromcurrency', currencies);
59                  listCurrencies('#fx_tocurrency', currencies);
60              } else {
61                  //TODO Show error message and go back??
62              }
63          } else {
64              _alertBox(Str_msg_failgetcurrency + getErrorMessage(r));
65              //TODO: Shall we push user back??
66          }
67          appstate = trans.TRAN_IDLE;
68      }
69      
70      /**
71       * @description parser for currencies response
72       * @param r response data
73       * @returns {Array} of parsed currecy objects with id and name properties
74       */
75      function parseCurrencies(r) {
76          var currencies = [];
77          if(r.lookupEntities != null) {
78              for(var i = 0;i < r.lookupEntities.length;i++) {
79                  var currency = {};
80                  currency.id = r.lookupEntities[i].id;
81                  currency.name = r.lookupEntities[i].name;
82                  currencies.push(currency);
83              }
84          }
85          return currencies;
86      }
87      
88      /**
89       * @description callback handler for getting the exchange rate back
90       * @param r response data
91       */
92      function getExchangeRateBack(r) {
93          hideProgress();
94          var rCode = getStatusCode(r);
95          if (rCode == '0') {
96              session.exchangeRate = r.exchangeRate;
97              $.mobile.changePage("fxresult.html", {transition: "none", changeHash: false});
98          } else {
99              _alertBox(Str_msg_failgetfxrate + getErrorMessage(r));
100             //TODO: Shall we push user back??
101         }
102         appstate = trans.TRAN_IDLE;
103     }
104     
105     /**
106      * @description callback handler for sending txn as SMS
107      * @param r response data
108      */
109     function sendTxnAsSMSBack(r) {
110         hideProgress();
111         var rCode = getStatusCode(r);
112         if (rCode == '0') {
113             _alertBox(Str_msg_txnassmssent);
114         } else {
115             _alertBox(Str_msg_failsendtxnsms + getErrorMessage(r));
116         }
117         appstate = trans.TRAN_IDLE;
118     }
119     
120     /**
121      * @description Callback handler for Getting Customer Service packages
122      * @param r responseXML containing service package or error description
123      */
124     function getCustomerServicePackageRequestBack(r) {
125         hideProgress();
126         var rCode = getStatusCode(r);
127         if (rCode == '0') {
128             session.customerServicePackage = parseCustomerServicePackage(r);
129             if(session.customerServicePackage && session.customerServicePackage.supportedChannel && $.inArray(setting.origin, session.customerServicePackage.supportedChannel)) {
130                 applyFilterForAddAlerts(session.customerServicePackage.supportedAlertList);
131             } else {
132                 _alertBox(Str_msg_channelnotsupport);
133             }
134         } else {
135             _alertBox(Str_msg_failgetservicepackage + getErrorMessage(r));
136         }
137         appstate = trans.TRAN_IDLE;
138     }
139     
140     /**
141      * @description Parser for CustomerServicePackage requests
142      * @param r responseXML
143      * @returns ServicePackage object
144      */
145     function parseCustomerServicePackage(r) {
146         var sp = new ServicePackage();
147     
148         if(r.servicePackage && r.servicePackage.servicePackageId)
149             sp.servicePackageId = r.servicePackage.servicePackageId;
150         if(r.servicePackage && r.servicePackage.supportedAlertList && r.servicePackage.supportedAlertList.supportedAlert.length) {
151             for(var i = 0;i < r.servicePackage.supportedAlertList.supportedAlert.length;i++) {
152                 sp.supportedAlertList.push(r.servicePackage.supportedAlertList.supportedAlert[i].alertName);
153             }
154         }
155         if(r.servicePackage && r.servicePackage.supportedChannelList && r.servicePackage.supportedChannelList.supportedChannel.length) {
156             for(var i = 0;i < r.servicePackage.supportedChannelList.supportedChannel.length;i++) {
157                 sp.supportedChannel.push(r.servicePackage.supportedChannelList.supportedChannel[i].channelId);
158             }
159         }
160         return sp;
161     }
162     
163     /**
164     	* @function
165         * @description Callback handler for the MB specific login check for T&C acceptance Restricted Number and Service Package restrictions
166     	* @param  r This is the XML document/JSON object that is returned by the AJAX call made by the MobiliserClient.
167     */
168     var mbLoginBack = function(r) {
169         var rCode = getStatusCode(r);
170         if (appstate == trans.TRAN_LOGIN) {
171             if(rCode == '0') {
172                 session.customerServicePackage = parseCustomerServicePackage(r);
173             } else if (rCode == '3183' || rCode == '3186') {
174                 _alertBox(Str_alert_loignfailed + "\n" + getErrorMessage(r));
175             } else if(rCode == '3184') {
176                 session.customerServicePackage = parseCustomerServicePackage(r);
177                 if(r.tc && r.tc.length > 0) {
178                     session.tc = r.tc;
179                 }
180             } else {
181                 _alertBox(Str_msg_fail_because + Str_msg_code + rCode + Str_msg_message + getErrorMessage(r));
182             }
183         }
184         return rCode;
185     };
186     
187     /**
188      * @function
189      * @description Callback handler for the T&C acceptance
190      * @param  r This is the XML document/JSON object that is returned by the AJAX call made by the MobiliserClient.
191      */
192     var acceptTermsAndConditionBack = function(r) {
193         var rCode = getStatusCode(r);
194         if(rCode == '0') {
195             return true;
196         } else {
197             _alertBox("Error in accepting Terms And Condition." + getErrorMessage(r));
198             return false;
199         }
200     };