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 };