1/* 2* jQuery.ajaxQueue - A queue for ajax requests 3* 4* (c) 2011 Corey Frang 5* Dual licensed under the MIT and GPL licenses. 6* 7* Requires jQuery 1.5+ 8*/ 9(function($) { 10 11// jQuery on an empty object, we are going to use this as our Queue 12var ajaxQueue = $({}); 13 14$.ajaxQueue = function( ajaxOpts ) 15{ 16 var jqXHR, 17 dfd = $.Deferred(), 18 promise = dfd.promise(); 19 20 // queue our ajax request 21 ajaxQueue.queue( doRequest ); 22 23 // add the abort method 24 promise.abort = function( statusText ) 25 { 26 // proxy abort to the jqXHR if it is active 27 if ( jqXHR ) 28 { 29 return jqXHR.abort( statusText ); 30 } 31 32 // if there wasn't already a jqXHR we need to remove from queue 33 var queue = ajaxQueue.queue(), 34 index = $.inArray( doRequest, queue ); 35 36 if ( index > -1 ) 37 { 38 queue.splice( index, 1 ); 39 } 40 41 // and then reject the deferred 42 dfd.rejectWith( ajaxOpts.context || ajaxOpts, 43 [ promise, statusText, "" ] ); 44 45 return promise; 46 }; 47 48 // run the actual query 49 function doRequest( next ) 50 { 51 jqXHR = $.ajax( ajaxOpts ) 52 .done( dfd.resolve ) 53 .fail( dfd.reject ) 54 .then( next, next ); 55 } 56 57 return promise; 58}; 59 60})(jQuery); 61 62satruck.api = 63{ 64 logginghost: satruck.log_api_host, 65 donorhost: satruck.donor_api_host, 66 pickuphost: satruck.pickup_api_host, 67 vehiclehost: satruck.vehicle_api_host, 68 zipinfohost: satruck.zipinfo_api_host, 69 tracktruckhost:satruck.tracktruck_api_host, 70 dsshost: satruck.dssRoot, 71 taxreceipturl: satruck.vehicle_api_host + "/donatevehicles/taxreceipt", 72 73 testmethods: [ 74 "geocode", 75 "zipinfo", 76 "zipexists", 77 "zipcovidformactive", 78 "locationlist", 79 "categories", 80 "getdates", 81 "donorlookup", 82 "donorslookup", 83 "pickupexists", 84 "vehiclelookup", 85 "makesandmodels", 86 "routedefaults", 87 "citystate", 88 "geocodemapquest" 89 ], 90 endpoints: { 91 //SHARED API -------------------------------------------------------------------------------- 92 93 //"zipdetail": { name: "zipdetail", method: "GET", api: "none", url: "https://dss.satruck.org/ZipManagement/Home/ZipDetail?ZipCode=90620" }, 94 95 96 zipdetail : { 97 name: "zipdetail", method: "GET", api: "none", url: "/GetZipDetail", 98 defaults: 99 { 100 ZipCode: "30189" 101 } 102 }, 103 //PageView data 104 submitworkflow: { name: "submitworkflow", method: "POST", api: "log", url: satruck.log_api_host + "/Api/LogMaster/LogWorkflow" }, 105 //Script Error Logging 106 clienterrorlog: { name: "clienterrorlog", method: "POST", api: "log", url: satruck.log_api_host + "/Exception/Write" }, 107 geocode: { name: "geocode", method: "GET", api: "pickup", url: "/DonateGoods/Geocode", 108 defaults: 109 { 110 Street: "6009 Hollow Drive", 111 ZipCode: "30189", 112 Territory_id: 20, 113 Arc_id: 10, 114 ValidateFromARC:0, 115 Referrer: "SATruck" 116 } 117 }, 118 geocodemapquest: { name: "geocodemapquest", method: "GET", api: "none", url: 'https://www.mapquestapi.com/geocoding/v1/address?key=ZfJnv63oSGudYxbVmJxyxuyDin2iaobb&location=6009 Hollow Drive, 30189' }, 119 encrypt: { name: "encrypt", method: "GET", api: "local", url: "../../api/encrypt" }, 120 121 /*LOG API -----------------------------------------------------------------------------------*/ 122 123 //Log Donor Info 124 logdonorinfo: { name: "logdonorinfo", method: "POST", api: "log", url: "/Donor/LogDonorInfo" }, 125 //Contact Form Submission 126 contactaction: { name: "contactaction", method: "POST", api: "log", url: "/contactaction" }, 127 128 //DONOR API --------------------------------------------------------------------------------- 129 130 //Login 131 login: { name: "login", method: "GET", api: "donor", url: "/login", 132 defaults: 133 { 134 UserName: "[email protected]", 135 Password: "4Freedom" 136 } 137 }, 138 fsalogin: { name: "fsalogin", method: "GET", api: "donor", url: "/fsalogin", 139 defaults: 140 { 141 tid: 20, 142 aid: 10, 143 did: 245 //?? who is it?? 144 } 145 }, 146 //IsValidToekn - checks if the reset password token is still valid
147 isvalidtoken: { name: "isvalidtoken", method: "GET", api: "donor", url: "/isvalidtoken"}, 148 //LoadProfile - gets User info by DonorUserId 149 loadprofile: { name: "loadprofile", method: "GET", api: "donor", url: "/loadprofile" }, 150 //Logoff 151 logoff: { name: "logoff", method: "GET", api: "donor", url: "/logoff" }, 152 //ChangePassword 153 changepassword: { name: "changepassword", method: "PUT", api: "donor", url: "/changepassword" }, 154 //ForgotPassword 155 forgotpassword: { name: "forgotpassword", method: "POST", api: "donor", url: "/forgotpassword" }, 156 //UpdateProfile 157 updateprofile: { name: "updateprofile", method: "PUT", api: "donor", url: "/updateprofile" }, 158 //Register 159 register: { name: "register", method: "POST", api: "donor", url: "/register" }, 160 //Contact Form Submission 161 contactsubmit: { name: "contactsubmit", method: "POST", api: "donor", url: "/contactus" }, 162 //Confirmation Email Submission 163 confirmationemail: { name: "confirmationemail", method: "POST", api: "donor", url: "/confirmationemail" }, 164 //Donors lookup 165 donorslookup: { 166 name: "donorslookup", method: "GET", api: "donor", url: "/donor", 167 defaults: 168 { 169 Territory_id: 20, 170 Arc_id: 10, 171 ZipCode: "30189", 172 HomePhone: "6787931703", 173 LastName: "Patrick" 174 } 175 }, 176 //UpdateSsn 177 updatessn: { name: "updatessn", method: "PUT", api: "donor", url: "/updatessn" }, 178 //UnsubscribeEmail 179 unsubscribeemail: { name: "unsubscribeemail", method: "PUT", api: "donor", url: "/unsubscribeemail" }, 180 //InsertPartnerInfo 181 insertpartnerinfo: { name: "insertpartnerinfo", method: "POST", api: "donor", url: "/insertpartnerinfo" }, 182 // Check if Territory uses Donor Experience 183 donorexpsetting: { name: "donorexpsetting", method: "GET", api: "donor", url: "/GetDonorNotificationSetting" }, 184 // Get donor info from encrypted string 185 getdonorinfofromstring: { name: "getdonorinfofromstring", method: "GET", api: "donor", url: "/GetDonorInfoFromString" }, 186 getfaq: { name: "getfaq", method: "GET", api: "donor", url: "/GetFAQ" }, 187 188 //ZIPINFO API -------------------------------------------------------------------------------- 189 190 //Determine Territory, ARC, get common items, is serviced 191 zipinfo: { 192 name: "zipinfo", method: "GET", api: "zipinfo", url: "/GetZipInfo", 193 defaults: 194 { 195 ZipCode: "30189", 196 AllowClosest: false 197 } 198 }, 199 //Check if ZIP exists in DB 200 zipexists: { name: "zipexists", method: "GET", api: "zipinfo", url: "/CheckZipExists" }, 201 callaheadavailable: { name: "callaheadavailable", method: "GET", api: "zipinfo", url: "/CheckCallAheadAllowed" }, 202 callaheadminutes: { name: "callaheadminutes", method: "GET", api: "zipinfo", url: "/GetCallAheadMinutes" }, 203 zipcovidformactive: { name: "zipcovidformactive", method: "GET", api: "zipinfo", url: "/CheckCovidFormActive" }, 204 205 //PICKUP API -------------------------------------------------------------------------------- 206 207 //lookup City & State when it's missing 208 citystate: { name: "citystate", method: "GET", api: "pickup", url: "/donategoods/citystate", 209 defaults: 210 { 211 ZipCode: "30116" 212 } 213 }, 214 //Get route defaults 215 routedefaults: { name: "routedefaults", method: "GET", api: "pickup", url: "/donategoods/routesettings", 216 defaults: 217 { 218 Territory_id: 20 219 } 220 }, 221 //Get a list of dropoff locations by zipcode 222 locationlist: { name: "locationlist", method: "GET", api: "pickup", url: "/donategoods/locations", 223 defaults: 224 { 225 Type: 3, 226 ZipCode: "30189", 227 otid: "0" 228 } 229 }, 230 //Get the categories for pickup items 231 categories: { name: "categories", method: "GET", api: "pickup", url: "/donategoods/categories", 232 defaults: 233 { 234 Territory_id: 20 235 } 236 }, 237 //scheduling lookup 238 getdates: { 239 name: "getdates", method: "GET", api: "pickup", url: "/donategoods/availabledates", 240 defaults: 241 { 242 Territory_id: 20, 243 Arc_id: 10, 244 Sector_id: 4, 245 PickupSize: 21, 246 MaxItemSize: '', 247 UseDefaultGroup: true 248 } 249 }, 250 //common instructions lookup 251 getinstructions: { 252 name: "getinstructions", method: "GET", api: "pickup", url: "/donategoods/commoninstructions" }, 253 //Donor lookup 254 donorlookup: { name: "donorlookup", method: "GET", api: "pickup", url: "/donategoods/donor", 255 defaults: 256 { 257 Territory_id: 20, 258 Arc_id: 10, 259 ZipCode: "30189", 260 HomePhone: "6787931703", 261 LastName: "Patrick" 262 } 263 }, 264 //Check for existing order 265 pickupexists: { name: "pickupexists", method: "GET", api: "pickup", url: "/donategoods/ticket/exist", 266 defaults: 267 { 268 Territory_id: 20, 269 Arc_id: 10, 270 Donor_id: 121, 271 ScheduleDate: "6/27/2015" 272 } 273 }, 274 //Pickup Submit 275 submitpickup: { name: "submitpickup", method: "POST", api: "pickup", url: "/donategoods/ticket" }, 276 //Add Item 277 additem: { name: "additem", method: "POST", api: "pickup", url: "/donategoods/itemincrement" }, 278 //Remove Item 279 removeitem: { name: "removeitem", method: "POST", api: "pickup", url: "/donategoods/itemdecrement" }, 280 //log referral 281 logreferral: { name: "logreferral", method: "POST", api: "pickup", url: "/Location/LogReferral"}, 282 //log referral 283 customerlead: { name: "customerlead", method: "POST", api: "pickup", url: "/donategoods/customerlead" }, 284 //log Initial referral 285 initialcustomerlead: { name: "initialcustomerlead", method: "POST", api: "pickup", url: "/donategoods/initialcustomerlead" }, 286 //Get advertising methods 287 admethods: { 288 name: "admethods", method: "GET", api: "pickup", url: "/donategoods/admethods", 289 defaults: 290 { 291 Territory_id: 20 292 } 293 }, 294 295 //VEHICLE API ------------------------------------------------------------------------------- 296 vehiclelookup: { name: "vehiclelookup", method: "GET", api: "vehicle", url: "/donatevehicles/vin", 297 defaults: 298 { 299 Vin: "2G1WT58N481251496", 300 ZipCode: "30115" 301 } 302 }, 303 submitvehicleorder: { name: "submitvehicleorder", method: "POST", api: "vehicle", url: "/donatevehicles/ticket"}, 304 makesandmodels: { name: "makesandmodels", method: "GET", api: "vehicle", url: "/DonateVehicles/Models", 305 defaults: 306 { 307 manufacturerId: 0 308 } 309 }, 310 311 // Re Supply Pickup API ------------------------------------------------------------------------------- 312 logReSupplyPickupbuttonclick: { name: "logReSupplyPickupbutton", method: "POST", api: "log", url: "/ReSupplyPickup/LogButton" }, 313 // My Donations API ------------------------------------------------------------------------------- 314 logbuttonclick: { name: "logbutton", method: "POST", api: "log", url: "/MyDonations/LogButton" }, 315 getdonationsummary: { name: "getdonationsummary", method: "GET", api: "pickup", url: "/MyDonations/GetDonationSummary" }, 316 getpartnerdonationsummary: { name: "getpartnerdonationsummary", method: "GET", api: "pickup", url: "/MyDonations/GetPartnerDonationSummary" }, 317 getdonationdetail: { name: "getdonationdetail", method: "GET", api: "pickup", url: "/MyDonations/GetDonationDetail" }, 318 editpickup: { name: "editpickup", method: "POST", api: "pickup", url: "/DonateGoods/EditTicket" }, 319 cancelpickup: { name: "cancelpickup", method: "POST", api: "pickup", url: "/DonateGoods/CancelTicket" }, 320 cancelvehicle: { name: "cancelvehicle", method: "POST", api: "vehicle", url: "/DonateVehicles/CancelTicket" }, 321 emailpickupwebreceipt: { name: "emailpickupwebreceipt", method: "POST", api: "pickup", url: "/DonateGoods/EmailPickupWebReceipt" }, 322 emailpickupwebreceipttoemail: { name: "emailpickupwebreceipttoemail", method: "POST", api: "pickup", url: "/DonateGoods/EmailPickupWebReceiptToEmail" }, 323 emaildropoffwebreceipt: { name: "emaildropoffwebreceipt", method: "POST", api: "pickup", url: "/DonateGoods/EmailDropOffWebReceipt" }, 324 getdonationdetailfornextpickup: { name: "getdonationdetailfornextpickup", method: "GET", api: "pickup", url: "/MyDonations/GetDonationDetailForNextPickup" }, 325 // Track The Truck API ----------------------------------------------------------------------------- 326 logutilizationevent: { name: "logutilizationevent", method: "POST", api: "tracktruck", url: "/LogUtilizationEvent" }, 327 donornotificationsenabled: { name: "donornotificationsenabled", method: "GET", api: "tracktruck", url: "/DonorNotificationsEnabled" }, 328 gettruckstatus: { name: "gettruckstatus", method: "GET", api: "tracktruck", url: "/GetTruckStatus" },
329 getterritoryandarcsettings: { name: "getterritoryandarcsettings", method: "GET", api: "tracktruck", url: "/GetTerritoryAndARCSettings" }, 330 getticketeta: { name: "getticketeta", method: "GET", api: "tracktruck", url: "/TicketETA" }, 331 getarcnotificationsettings: { name: "getarcnotificationsettings", method: "GET", api: "tracktruck", url: "/TrackTheTruck/GetArcNotificationSettings" }, 332 getpickupnotificationsetting: { name: "getpickupnotificationsetting", method: "GET", api: "tracktruck", url: "/TrackTheTruck/GetPickupNotificationSetting" }, 333 updatepickupnotificationsetting: { name: "updatepickupnotificationsetting", method: "POST", api: "tracktruck", url: "/TrackTheTruck/UpdatePickupNotification" }, 334 getlatestsurvey: { name: "getlatestsurvey", method: "GET", api: "tracktruck", url: "/api/Survey" }, 335 savesurvey: { name: "savesurvey", method: "POST", api: "tracktruck", url: "/api/Survey" } 336 }, 337 338 _doCompletionRoutine: function(endpoint, jqXHR, completeHandler) 339 { 340 if (jqXHR && (jqXHR.statusText == "success" || jqXHR.statusText == "OK")) 341 { 342 var apiResult = jqXHR.responseJSON ? jqXHR.responseJSON : $.parseJSON(jqXHR.responseText); 343 344 //ONLY CACHE GOOD RESULTS 345 satruck.config._persistApiResult(endpoint, apiResult); 346 347 if (completeHandler) 348 completeHandler(apiResult); 349 } 350 else 351 { 352 DN.Utils.log(jqXHR.statusText); 353 354 var apiResult = 355 { 356 Success: false, 357 HasError: true, 358 ErrorMessage: jqXHR.statusText, 359 ErrorDetail: '', 360 Feedback: '', 361 RetVal: null 362 }; 363 364 if (completeHandler) 365 completeHandler(apiResult); 366 } 367 }, 368 369 Login: function(username, password, completeHandler) 370 { 371 var url = this.donorhost + this.endpoints.login.url; 372 373 $.ajax( 374 { 375 url: url, 376 dataType: 'json', 377 data: { UserName: username, Password: password }, 378 complete: function(jqXHR, textStatus) 379 { 380 satruck.api._doCompletionRoutine("login", jqXHR, completeHandler); 381 } 382 }); 383 }, 384 385 Fsa_Login: function(tid, aid, did, completeHandler) 386 { 387 var url = this.donorhost + this.endpoints.fsalogin.url; 388 389 $.ajax( 390 { 391 url: url, 392 dataType: 'json', 393 data: { Territory_id: tid, Arc_id: aid, Donor_id: did }, 394 complete: function(jqXHR, textStatus) 395 { 396 satruck.api._doCompletionRoutine("fsalogin", jqXHR, completeHandler); 397 } 398 }); 399 }, 400 401 Logoff: function(donorUserId, completeHandler) 402 { 403 var url = this.donorhost + this.endpoints.logoff.url; 404 405 $.ajax( 406 { 407 url: url, 408 dataType: 'json', 409 data: { DonorUserId: donorUserId }, 410 complete: function(jqXHR, textStatus) 411 { 412 satruck.api._doCompletionRoutine("logoff", jqXHR, completeHandler); 413 } 414 }); 415 }, 416 417 ChangePassword: function(donorUserId, password, token, completeHandler) 418 { 419 var oldPassword = password.oldpw ? password.oldpw.replace('#', '||poundhash||').replace('+', '||plussign||').replace('&', '||ampersand||') : ""; 420 var newPassword = password.newpw.replace('#', '||poundhash||').replace('+', '||plussign||').replace('&', '||ampersand||'); 421 token = token ? token : ""; 422 //PUT 423 var url = this.donorhost + this.endpoints.changepassword.url + 424 "?DonorUserId=" + donorUserId + 425 "&NewPassword=" + newPassword + 426 "&OldPassword=" + oldPassword + 427 "&Token=" + token + ""; 428 429 // add existing password 430 // OldPassword 431 // NewPassword 432 433 $.ajax( 434 { 435 url: url, 436 contentType: 'application/json', 437 method: this.endpoints.changepassword.method, 438 complete: function(jqXHR, textStatus) 439 { 440 satruck.api._doCompletionRoutine("changepassword", jqXHR, completeHandler); 441 } 442 }); 443 }, 444 445 ForgotPassword: function(email, completeHandler) 446 { 447 448 var url = this.donorhost + this.endpoints.forgotpassword.url + 449 "?Email=" + email; 450 451 $.ajax( 452 { 453 url: url, 454 dataType: 'json', 455 method: this.endpoints.forgotpassword.method, 456 complete: function(jqXHR, textStatus) 457 { 458 satruck.api._doCompletionRoutine("forgotpassword", jqXHR, completeHandler); 459 } 460 }); 461 462 }, 463 464 IsValidToken: function (token, completeHandler) { 465 var url = this.donorhost + this.endpoints.isvalidtoken.url; 466 467 $.ajax( 468 { 469 url: url, 470 dataType: 'json', 471 async: false, 472 data: { Token: token }, 473 complete: function (jqXHR, textStatus) { 474 satruck.api._doCompletionRoutine("isvalidtoken", jqXHR, completeHandler); 475 } 476 }); 477 }, 478 479 LoadProfile: function(donorUserId, completeHandler) 480 { 481 var url = this.donorhost + this.endpoints.loadprofile.url; 482 483 $.ajax( 484 { 485 url: url, 486 dataType: 'json', 487 async: false, 488 data: { DonorUserId: donorUserId }, 489 complete: function(jqXHR, textStatus) 490 { 491 satruck.api._doCompletionRoutine("loadprofile", jqXHR, completeHandler); 492 } 493 }); 494 }, 495
496 UpdateProfile: function(donor, completeHandler) 497 { 498 //PUT 499 var url = this.donorhost + this.endpoints.updateprofile.url; 500 501 var sourceType = satruck.config._getSourceType(); 502 503 var donorinfo = 504 { 505 Territory_id: donor.Territory_id, 506 Arc_id: donor.Arc_id, 507 Donor_id: donor.Donor_id, 508 ZipCode: donor.ZipCode, 509 FirstName: donor.FirstName, 510 LastName: donor.LastName, 511 HomePhone: donor.HomePhone, 512 DayPhone: donor.DayPhone, 513 AddressLine1: donor.AddressLine1, 514 AddressLine2: donor.AddressLine2, 515 City: donor.City, 516 State: donor.State, 517 OtherInfo: donor.OtherInfo, 518 Email: donor.Email, 519 IsBusiness: donor.IsBusiness, 520 NoSolicitation: donor.NoSolicitation, 521 NoServiceReminders: donor.NoServiceReminders, 522 DoNotEmailSolicitation: donor.DoNotEmailSolicitation, 523 DoNotCallSolicitation: donor.DoNotCallSolicitation, 524 DoNotTextSolicitation: donor.DoNotTextSolicitation, 525 DoNotEmailServiceReminders: donor.DoNotEmailServiceReminders, 526 DoNotCallServiceReminders: donor.DoNotCallServiceReminders, 527 DoNotTextServiceReminders: donor.DoNotTextServiceReminders, 528 DonorGUID: donor.DonorGUID, 529 HomeExtension: donor.HomeExtension, 530 DayExtension: donor.DayExtension, 531 MapInfo: donor.MapInfo, 532 IsSpecial: donor.IsSpecial, 533 CrossStreet: donor.CrossStreet, 534 Latitude: donor.Latitude, 535 Longitude: donor.Longitude, 536 Geocode_id: donor.Geocode_id, 537 GeocodeTime: donor.GeocodeTime, 538 GeocodeTimeString: donor.GeocodeTimeString, 539 GeocodeSource: donor.GeocodeSource, 540 GeocodeService: donor.GeocodeService, 541 GeocodeConfidence: donor.GeocodeConfidence, 542 GeocodeAttempts: donor.GeocodeAttempts, 543 DonorUserId: donor.DonorUserId, 544 SourceType: sourceType, 545 IsMobile: satruck.config.ismobile 546 }; 547 548 $.ajax( 549 { 550 url: url, 551 data: JSON.stringify(donorinfo), 552 contentType: 'application/json', 553 method: this.endpoints.updateprofile.method, 554 complete: function(jqXHR, textStatus) 555 { 556 satruck.api._doCompletionRoutine("updateprofile", jqXHR, completeHandler); 557 } 558 }); 559 }, 560 561 RegisterNewUser: function(donor, password, completeHandler) 562 { 563 var url = this.donorhost + this.endpoints.register.url; 564 565 var sourceType = satruck.config._getSourceType(); 566 567 var accountinfo = 568 { 569 FirstName: donor.FirstName, 570 LastName: donor.LastName, 571 HomePhone: donor.HomePhone, 572 ZipCode: donor.ZipCode, 573 Email: donor.Email, 574 Password: password, 575 Territory_id: donor.Territory_id, 576 Arc_id: donor.Arc_id, 577 Donor_id: donor.Donor_id, 578 SourceType: sourceType, 579 IsMobile: satruck.config.ismobile 580 }; 581 582 DN.Utils.postJSON 583 ( 584 url, 585 JSON.stringify(accountinfo), 586 function(jqXHR, textStatus) 587 { 588 satruck.api._doCompletionRoutine("register", jqXHR, completeHandler); 589 } 590 ); 591 }, 592 593 GetDonors: function(territoryId, arcId, zipCode, homePhone, lastName, zipCode, completeHandler) 594 { 595 var url = this.donorhost + this.endpoints.donorslookup.url; 596 597 $.ajax( 598 { 599 url: url, 600 dataType: 'json', 601 data: 602 { 603 Territory_id: territoryId, 604 Arc_id: arcId, 605 ZipCode: zipCode, 606 HomePhone: homePhone, 607 LastName: lastName, 608 ZipCode: zipCode 609 }, 610 complete: function(jqXHR, textStatus) 611 { 612 satruck.api._doCompletionRoutine("donorslookup", jqXHR, completeHandler); 613 } 614 }); 615 }, 616 617 UpdateSsn: function(territoryId, arcId, donorId, ssn, completeHandler) 618 { 619 //PUT 620 var url = this.donorhost + this.endpoints.updatessn.url + 621 "?Territory_id=" + territoryId + 622 "&Arc_id=" + arcId + 623 "&Donor_id=" + donorId + 624 "&SSN=" + encodeURIComponent(ssn); 625 626 $.ajax( 627 { 628 url: url, 629 contentType: 'application/json', 630 method: "PUT", 631 complete: function(jqXHR, textStatus) 632 { 633 satruck.api._doCompletionRoutine("updatessn", jqXHR, completeHandler); 634 } 635 }); 636 }, 637 638 UnsubscribeEmail: function (id, isUnsubscribe, completeHandler) { 639 //PUT 640 var url = this.donorhost + this.endpoints.unsubscribeemail.url + 641 "?Id=" + id + 642 "&Unsubscribe=" + isUnsubscribe; 643 644 $.ajax( 645 { 646 url: url, 647 contentType: 'application/json', 648 method: "PUT", 649 complete: function (jqXHR, textStatus) { 650 satruck.api._doCompletionRoutine("unsubscribeemail", jqXHR, completeHandler); 651 } 652 }); 653 }, 654 655 InsertPartnerInfo: function (partner, completeHandler) { 656 //POST 657 var url = this.donorhost + this.endpoints.insertpartnerinfo.url + 658 "?PartnerUserId=" + partner.PartnerUserId + 659 "&Territory_id=" + partner.Territory_id + 660 "&Arc_id=" + partner.Arc_id + 661 "&Donor_id=" + partner.Donor_id + 662 "&Pickup_id=" + partner.Pickup_id; 663 664 $.ajax( 665 { 666 url: url, 667 contentType: 'application/json', 668 method: this.endpoints.insertpartnerinfo.method, 669 complete: function (jqXHR, textStatus) { 670 satruck.api._doCompletionRoutine("insertpartnerinfo", jqXHR, completeHandler); 671 } 672 }); 673 }, 674 675 GetZipDetail: function(zip, completeHandler) 676 {
677 var url = "http://dss.satruck.org/ZipManagement/Home/ZipDetail"; 678 //var url = this.dsshost + this.endpoints.zipdetail.url; 679 680 $.ajax( 681 { 682 url: url, 683 dataType: 'json', 684 data: { ZipCode: zip }, 685 complete: function(jqXHR, textStatus) 686 { 687 satruck.api._doCompletionRoutine("zipdetail", jqXHR, completeHandler); 688 } 689 }); 690 }, 691 692 GetZipInfo: function (zip, isVehicleLookup, completeHandler) { 693 var url = this.zipinfohost + this.endpoints.zipinfo.url; 694 695 try { 696 var sourceType = satruck.config._getSourceType(); 697 var entryUserId = 1; 698 699 if (sourceType != null) { 700 switch (sourceType) { 701 case 0://WebSite 702 entryUserId = 1; 703 break; 704 case 1://Mobile version of web site via browser 705 entryUserId = 11; 706 break; 707 case 2://Mobile version of web site through family store app 708 entryUserId = 12; 709 break; 710 } 711 } 712 else if (satruck.config.ismobile) { 713 entryUserId = 11; 714 } 715 } 716 catch (e) { 717 } 718 719 720 $.ajax( 721 { 722 url: url, 723 dataType: 'json', 724 data: { ZipCode: zip, IsVehicleLookup: isVehicleLookup, EntryUser_id: entryUserId }, 725 complete: function (jqXHR, textStatus) { 726 satruck.api._doCompletionRoutine("zipinfo", jqXHR, completeHandler); 727 } 728 }); 729 }, 730 731 CheckZipExists: function (zip, completeHandler) { 732 var url = this.zipinfohost + this.endpoints.zipexists.url + "?ZipCode=" + zip; 733 734 $.ajax( 735 { 736 url: url, 737 dataType: 'json', 738 data: { ZipCode: zip }, 739 method: this.endpoints.zipexists.method, 740 complete: function (jqXHR, textStatus) { 741 satruck.api._doCompletionRoutine("zipexists", jqXHR, completeHandler); 742 } 743 }); 744 }, 745 746 CheckCallAheadAllowed: function (territoryId, arcId, completeHandler) { 747 var url = this.zipinfohost + this.endpoints.callaheadavailable.url + 748 "?TerritoryId=" + territoryId + 749 "&ArcId=" + arcId; 750 $.ajax( 751 { 752 url: url, 753 dataType: 'json', 754 async: false, 755 data: { TerritoryId: territoryId, ArcId: arcId }, 756 method: this.endpoints.callaheadavailable.method, 757 complete: function (jqXHR, textStatus) { 758 satruck.api._doCompletionRoutine("callaheadavailable", jqXHR, completeHandler); 759 } 760 }); 761 }, 762 763 GetCallAheadMinutes: function (territoryId, completeHandler) { 764 var url = this.zipinfohost + this.endpoints.callaheadminutes.url + 765 "?TerritoryId=" + territoryId; 766 $.ajax( 767 { 768 url: url, 769 dataType: 'json', 770 async: false, 771 data: { TerritoryId: territoryId }, 772 method: this.endpoints.callaheadminutes.method, 773 complete: function (jqXHR, textStatus) { 774 satruck.api._doCompletionRoutine("callaheadminutes", jqXHR, completeHandler); 775 } 776 }); 777 }, 778 779 CheckCovidFormActive: function (tid, zip, completeHandler) { 780 var url = this.zipinfohost + this.endpoints.zipcovidformactive.url; 781 $.ajax( 782 { 783 url: url, 784 dataType: 'json', 785 async: false, 786 data: { 787 TerritoryId: tid, 788 ZipCode: zip}, 789 method: this.endpoints.zipcovidformactive.method, 790 complete: function (jqXHR, textStatus) { 791 satruck.api._doCompletionRoutine("zipcovidformactive", jqXHR, completeHandler); 792 } 793 }); 794 }, 795 796 CheckDonorExperienceSetting: function (territoryId, arcId, completeHandler) { 797 var url = this.donorhost + this.endpoints.donorexpsetting.url; 798 $.ajax( 799 { 800 url: url, 801 dataType: 'json', 802 async: false, 803 data: { TerritoryId: territoryId, ArcId: arcId }, 804 method: this.endpoints.donorexpsetting.method, 805 complete: function (jqXHR, textStatus) { 806 satruck.api._doCompletionRoutine("donorexpsetting", jqXHR, completeHandler); 807 } 808 }); 809 }, 810 811 GetCityState: function(zip, completeHandler) 812 { 813 var url = this.pickuphost + this.endpoints.citystate.url; 814 var _topHandler = completeHandler; 815 816 $.ajax( 817 { 818 url: url, 819 dataType: 'json', 820 data: { ZipCode: zip }, 821 complete: function(jqXHR, textStatus) 822 { 823 if (jqXHR && (jqXHR.statusText == "success" || jqXHR.statusText == "OK")) 824 { 825 var apiResult = jqXHR.responseJSON ? jqXHR.responseJSON : $.parseJSON(jqXHR.responseText); 826 if (apiResult.Success == true) 827 { 828 satruck.api._doCompletionRoutine("citystate", jqXHR, _topHandler); 829 } 830 else 831 { 832 DN.Utils.log("CityState lookup trying 2nd attempt"); 833 //Try #2 834 $.ajax( 835 { 836 url: url, 837 dataType: 'json', 838 data: { ZipCode: zip }, 839 complete: function(jqXHR, textStatus) 840 { 841 if (jqXHR && (jqXHR.statusText == "success" || jqXHR.statusText == "OK")) 842 { 843 var apiResult = jqXHR.responseJSON ? jqXHR.responseJSON : $.parseJSON(jqXHR.responseText); 844 if (apiResult.Success == true) 845 { 846 satruck.api._doCompletionRoutine("citystate", jqXHR, _topHandler); 847 } 848 else 849 { 850 DN.Utils.log("CityState lookup trying 3rd attempt"); 851 //Try #3 852 $.ajax( 853 { 854 url: url, 855 dataType: 'json', 856 data: { ZipCode: zip }, 857 complete: function(jqXHR, textStatus) 858 { 859 if (jqXHR && (jqXHR.statusText == "success" || jqXHR.statusText == "OK")) 860 { 861 var apiResult = jqXHR.responseJSON ? jqXHR.responseJSON : $.parseJSON(jqXHR.responseText); 862 if (apiResult.Success == true) 863 { 864 satruck.api._doCompletionRoutine("citystate", jqXHR, _topHandler); 865 } 866 else 867 { 868 //Custom Error so UI can handle correctly 869 var apiResult = 870 { 871 Success: false, 872 HasError: true, 873 ErrorMessage: 'CityState lookup failed 3 times', 874 ErrorDetail: 'zip:'+zip, 875 Feedback: 'nocitystate', 876 RetVal: null 877 }; 878 879 if (_topHandler) 880 _topHandler(apiResult); 881 } 882 } 883 } 884 });
885 } 886 } 887 else 888 { 889 satruck.api._doCompletionRoutine("citystate", jqXHR, _topHandler); 890 } 891 } 892 }); 893 } 894 } 895 else 896 { 897 satruck.api._doCompletionRoutine("citystate", jqXHR, _topHandler); 898 } 899 } 900 }); 901 }, 902 903 GeocodeMapquest: function(street, zip, completeHandler) 904 { 905 var url = 'https://www.mapquestapi.com/geocoding/v1/address?key=ZfJnv63oSGudYxbVmJxyxuyDin2iaobb&location=' + street + ', ' + zip; 906 907 $.ajax( 908 { 909 url: url, 910 dataType: 'json', 911 complete: function(jqXHR, textStatus) 912 { 913 if (jqXHR && (jqXHR.statusText == "success" || jqXHR.statusText == "OK")) 914 { 915 var mapResult = jqXHR.responseJSON ? jqXHR.responseJSON : $.parseJSON(jqXHR.responseText); 916 917 if (mapResult.results.length && mapResult.results[0].locations && mapResult.results[0].locations.length) 918 { 919 try 920 { 921 var _mqresult = mapResult.results[0].locations[0]; 922 var _geocodeQualityCodeArray = _mqresult.geocodeQualityCode.split(''); 923 if (_geocodeQualityCodeArray && _geocodeQualityCodeArray.length >= 5) 924 { 925 var _good = ((_geocodeQualityCodeArray[2].toUpperCase() == 'A' || _geocodeQualityCodeArray[2].toUpperCase() == 'B') && 926 (_geocodeQualityCodeArray[3].toUpperCase() == 'A' || _geocodeQualityCodeArray[3].toUpperCase() == 'B') && 927 (_geocodeQualityCodeArray[4].toUpperCase() == 'A' || _geocodeQualityCodeArray[4].toUpperCase() == 'B')); 928 929 if (_good) 930 { 931 var apiResult = 932 { 933 Success: true, 934 HasError: false, 935 ErrorMessage: null, 936 ErrorDetail: null, 937 Feedback: null, 938 RetVal: 939 { 940 Confidence: "Good", 941 AttemptedGeocodes: 1, 942 City: _mqresult.adminArea5, 943 Accuracy: 1, 944 Lat: _mqresult.displayLatLng.lat, 945 Lon: _mqresult.displayLatLng.lng, 946 Source: "mapquest", 947 Street: _mqresult.street, 948 ZipCode: _mqresult.postalCode 949 } 950 }; 951 //ONLY CACHE GOOD RESULTS 952 satruck.config._persistApiResult("geocodemapquest", apiResult); 953 954 if (completeHandler) 955 completeHandler(apiResult); 956 } 957 else 958 { 959 DN.Utils.log(_mqresult.geocodeQualityCode); 960 961 var apiResult = 962 { 963 Success: false, 964 HasError: true, 965 ErrorMessage: "innaccurate mapquest result: " + _mqresult.geocodeQualityCode, 966 ErrorDetail: '', 967 Feedback: '', 968 RetVal: null 969 }; 970 971 if (completeHandler) 972 completeHandler(apiResult); 973 } 974 } 975 else 976 { 977 DN.Utils.log("unknown mapquest result format"); 978 979 var apiResult = 980 { 981 Success: false, 982 HasError: true, 983 ErrorMessage: "unknown mapquest result format", 984 ErrorDetail: '', 985 Feedback: '', 986 RetVal: null 987 }; 988 989 if (completeHandler) 990 completeHandler(apiResult); 991 } 992 } 993 catch(err) 994 { 995 DN.Utils.log(err.message); 996 997 var apiResult = 998 { 999 Success: false, 1000 HasError: true, 1001 ErrorMessage: err.message, 1002 ErrorDetail: '', 1003 Feedback: '', 1004 RetVal: null 1005 }; 1006 1007 if (completeHandler) 1008 completeHandler(apiResult); 1009 } 1010 } 1011 else 1012 { 1013 DN.Utils.log("unknown mapquest result format"); 1014 1015 var apiResult = 1016 { 1017 Success: false, 1018 HasError: true, 1019 ErrorMessage: "unknown mapquest result format", 1020 ErrorDetail: '', 1021 Feedback: '', 1022 RetVal: null 1023 }; 1024 1025 if (completeHandler) 1026 completeHandler(apiResult); 1027 } 1028 } 1029 else 1030 { 1031 DN.Utils.log(jqXHR.statusText); 1032 1033 var apiResult = 1034 { 1035 Success: false, 1036 HasError: true, 1037 ErrorMessage: jqXHR.statusText, 1038 ErrorDetail: '', 1039 Feedback: '', 1040 RetVal: null 1041 }; 1042 1043 if (completeHandler) 1044 completeHandler(apiResult); 1045 } 1046 } 1047 }); 1048 }, 1049 1050 GetRouteDefaults: function(territoryId, completeHandler) 1051 { 1052 var url = this.pickuphost + this.endpoints.routedefaults.url; 1053 1054 $.ajax( 1055 { 1056 url: url, 1057 dataType: 'json', 1058 data: { Territory_id: territoryId }, 1059 complete: function(jqXHR, textStatus) 1060 { 1061 satruck.api._doCompletionRoutine("routedefaults", jqXHR, completeHandler); 1062 } 1063 }); 1064 }, 1065 1066 GetLocationListing: function(zip, completeHandler) 1067 { 1068 var url = this.pickuphost + this.endpoints.locationlist.url; 1069 1070 $.ajax( 1071 { 1072 url: url, 1073 dataType: 'json', 1074 data: { Type: 3, ZipCode: zip }, 1075 complete: function(jqXHR, textStatus) 1076 { 1077 satruck.api._doCompletionRoutine("locationlist", jqXHR, completeHandler); 1078 } 1079 }); 1080 }, 1081 1082 GetStoreListing: function (zip, completeHandler) { 1083 var url = this.pickuphost + this.endpoints.locationlist.url; 1084 1085 $.ajax( 1086 { 1087 url: url, 1088 dataType: 'json', 1089 data: { Type: 2, ZipCode: zip }, 1090 complete: function (jqXHR, textStatus) { 1091 satruck.api._doCompletionRoutine("locationlist", jqXHR, completeHandler); 1092 } 1093 }); 1094 }, 1095 1096 GetFamilyStoreListing: function (zip,_otid, completeHandler) { 1097 var url = this.pickuphost + this.endpoints.locationlist.url; 1098 1099 $.ajax( 1100 { 1101 url: url, 1102 dataType: 'json', 1103 data: { Type: 2, ZipCode: zip, ArcStoresOnly: true, otid: _otid }, 1104 complete: function (jqXHR, textStatus) { 1105 satruck.api._doCompletionRoutine("locationlist", jqXHR, completeHandler); 1106 } 1107 }); 1108 }, 1109 1110 GetCategories: function(territoryId, completeHandler) 1111 { 1112 var url = this.pickuphost + this.endpoints.categories.url; 1113 1114 $.ajax( 1115 { 1116 url: url, 1117 dataType: 'json', 1118 data: { Territory_id: territoryId }, 1119 complete: function(jqXHR, textStatus) 1120 { 1121 satruck.api._doCompletionRoutine("categories", jqXHR, completeHandler); 1122 } 1123 }); 1124 }, 1125 1126 GetSchedulingInfo: function(territoryId, arcId, sectorId, pickupSize, maxItemSize, completeHandler) 1127 { 1128 var url = this.pickuphost + this.endpoints.getdates.url; 1129 $.ajax( 1130 { 1131 url: url, 1132 dataType: 'json', 1133 data: 1134 { 1135 Territory_id: territoryId, 1136 Arc_id: arcId, 1137 Sector_id: sectorId, 1138 PickupSize: pickupSize, 1139 MaxItemSize: maxItemSize, 1140 UseDefaultGroup: true 1141 }, 1142 complete: function(jqXHR, textStatus) 1143 { 1144 satruck.api._doCompletionRoutine("getdates", jqXHR, completeHandler); 1145 } 1146 }); 1147 }, 1148 1149 GetCommonInstructions: function (territoryId, completeHandler) { 1150 var url = this.pickuphost + this.endpoints.getinstructions.url; 1151 1152 $.ajax( 1153 { 1154 url: url, 1155 dataType: 'json', 1156 data: { Territory_id: territoryId }, 1157 complete: function (jqXHR, textStatus) { 1158 satruck.api._doCompletionRoutine("getinstructions", jqXHR, completeHandler); 1159 } 1160 }); 1161 }, 1162 1163 GetDonorInfo: function(territoryId, arcId, zipCode, homePhone, lastName, completeHandler) 1164 { 1165 var url = this.pickuphost + this.endpoints.donorlookup.url; 1166 1167 $.ajax( 1168 { 1169 url: url, 1170 dataType: 'json', 1171 data: 1172 { 1173 Territory_id: territoryId, 1174 Arc_id: arcId, 1175 ZipCode: zipCode, 1176 HomePhone: homePhone, 1177 LastName: lastName 1178 }, 1179 complete: function(jqXHR, textStatus) 1180 { 1181 satruck.api._doCompletionRoutine("donorlookup", jqXHR, completeHandler); 1182 } 1183 }); 1184 }, 1185 1186 GetPickupExists: function(territoryId, arcId, donorId, scheduleDate, completeHandler) 1187 { 1188 var url = this.pickuphost + this.endpoints.pickupexists.url; 1189 1190 $.ajax( 1191 { 1192 url: url, 1193 dataType: 'json', 1194 data: 1195 { 1196 Territory_id: territoryId, 1197 Arc_id: arcId, 1198 Donor_id: donorId, 1199 ScheduleDate: scheduleDate 1200 }, 1201 complete: function(jqXHR, textStatus) 1202 { 1203 satruck.api._doCompletionRoutine("pickupexists", jqXHR, completeHandler); 1204 } 1205 }); 1206 }, 1207 1208 Geocode: function(street, zipCode, territoryId, arcId, source, completeHandler) 1209 { 1210 var url = this.pickuphost + this.endpoints.geocode.url; 1211 1212 $.ajax( 1213 { 1214 url: url, 1215 dataType: 'json', 1216 data: 1217 { 1218 Street: street, 1219 ZipCode: zipCode, 1220 Territory_id: territoryId, 1221 Arc_id: arcId, 1222 ValidateFromARC:0, 1223 Referrer: source ? source : "SATruck" 1224 }, 1225 complete: function(jqXHR, textStatus) 1226 { 1227 satruck.api._doCompletionRoutine("geocode", jqXHR, completeHandler); 1228 } 1229 }); 1230 }, 1231 1232 GetMakesAndModels: function(id, completeHandler) 1233 { 1234 var url = this.vehiclehost + this.endpoints.makesandmodels.url; 1235 1236 $.ajax( 1237 { 1238 url: url, 1239 dataType: 'json', 1240 data: 1241 { 1242 manufacturerId: id 1243 }, 1244 complete: function(jqXHR, textStatus) 1245 { 1246 satruck.api._doCompletionRoutine("makesandmodels", jqXHR, completeHandler); 1247 } 1248 }); 1249 }, 1250 1251 GetVehicleByVin: function(vin, zipCode, completeHandler) 1252 { 1253 var url = this.vehiclehost + this.endpoints.vehiclelookup.url; 1254 1255 $.ajax( 1256 { 1257 url: url, 1258 dataType: 'json', 1259 data: 1260 { 1261 Vin: vin, 1262 ZipCode: zipCode 1263 }, 1264 complete: function(jqXHR, textStatus) 1265 { 1266 satruck.api._doCompletionRoutine("vehiclelookup", jqXHR, completeHandler); 1267 } 1268 }); 1269 }, 1270 1271 SubmitPickupOrder: function(donation, donor, completeHandler) 1272 { 1273 var url = this.pickuphost + this.endpoints.submitpickup.url; 1274 1275 var pickupticket = 1276 { 1277 ForceNewDonor: donation.ForceNewDonor, 1278 Territory_id: donation.tid, 1279 Arc_id: donation.aid, 1280 Donor_id: donation.did, 1281 ZipCode: donor.ZipCode,
1282 FirstName: donor.FirstName, 1283 LastName: donor.LastName, 1284 HomePhone: donor.HomePhone, 1285 DayPhone: donor.DayPhone, 1286 AddressLine1: donor.AddressLine1, 1287 AddressLine2: donor.AddressLine2, 1288 City: donor.City, 1289 State: donor.State, 1290 OtherInfo: donor.OtherInfo, 1291 Email: donor.Email, 1292 IsBusiness: donor.IsBusiness, 1293 CallAheadMinutes: donation.CallAheadTime, 1294 NoSolicitation: donor.NoSolicitation, 1295 NoServiceReminders: donor.NoServiceReminders, 1296 DoNotEmailSolicitation: donor.DoNotEmailSolicitation, 1297 DoNotCallSolicitation: donor.DoNotCallSolicitation, 1298 DoNotTextSolicitation: donor.DoNotTextSolicitation, 1299 DoNotEmailServiceReminders: donor.DoNotEmailServiceReminders, 1300 DoNotCallServiceReminders: donor.DoNotCallServiceReminders, 1301 DoNotTextServiceReminders: donor.DoNotTextServiceReminders, 1302 DonorGUID: donor.DonorGUID, 1303 Pickup_id: 0, 1304 DonatedItems: donation.itemsString, 1305 DonatedItemsArray: donation.items, 1306 Instructions: donation.instructions, 1307 ScheduleDate: donation.scheduleDate, 1308 Sector_id: donation.sectorId, 1309 Group_id: donation.groupId, 1310 Route_id: 0, 1311 PickupSize: donation.pickupSize, 1312 IPAddress: satruck.userHostAddress, 1313 HasCustomItem: donation.hasCustomItem, 1314 SourceType: donation.sourceType, 1315 IsMobile: donation.isMobile, 1316 HomeExtension: donor.HomeExtension, 1317 DayExtension: donor.DayExtension, 1318 MapInfo: donor.MapInfo, 1319 IsSpecial: donor.IsSpecial, 1320 CrossStreet: donor.CrossStreet, 1321 Latitude: donor.Latitude, 1322 Longitude: donor.Longitude, 1323 Geocode_id: donor.Geocode_id, 1324 GeocodeTime: donor.GeocodeTime, 1325 GeocodeTimeString: donor.GeocodeTimeString, 1326 GeocodeSource: donor.GeocodeSource, 1327 GeocodeService: donor.GeocodeService, 1328 GeocodeConfidence: donor.GeocodeConfidence, 1329 GeocodeAttempts: donor.GeocodeAttempts 1330 }; 1331 1332 DN.Utils.postJSON 1333 ( 1334 url, 1335 //JSON.stringify({ PickupTicket: pickupticket, SourceType: 0, IsMobile: false }), 1336 JSON.stringify(pickupticket), 1337 function(jqXHR, textStatus) 1338 { 1339 satruck.api._doCompletionRoutine("submitpickup", jqXHR, completeHandler); 1340 } 1341 ); 1342 1343 }, 1344 1345 SubmitVehicleOrder: function(donation, donor, completeHandler) 1346 { 1347 var url = this.vehiclehost + this.endpoints.submitvehicleorder.url; 1348 1349 var vehicleticket = 1350 { 1351 ForceNewDonor: donation.forceNewDonor, 1352 Territory_id: donation.tid, 1353 Arc_id: donation.aid, 1354 Donor_id: donation.did, 1355 ZipCode: donor.ZipCode, 1356 FirstName: donor.FirstName, 1357 LastName: donor.LastName, 1358 HomePhone: donor.HomePhone, 1359 DayPhone: donor.DayPhone, 1360 AddressLine1: donor.AddressLine1, 1361 AddressLine2: donor.AddressLine2, 1362 City: donor.City, 1363 State: donor.State, 1364 OtherInfo: donor.OtherInfo, 1365 Email: donor.Email, 1366 IsBusiness: donor.IsBusiness, 1367 NoSolicitation: donor.NoSolicitation, 1368 NoServiceReminders: donor.NoServiceReminders, 1369 DoNotEmailSolicitation: donor.DoNotEmailSolicitation, 1370 DoNotCallSolicitation: donor.DoNotCallSolicitation, 1371 DoNotTextSolicitation: donor.DoNotTextSolicitation, 1372 DoNotEmailServiceReminders: donor.DoNotEmailServiceReminders, 1373 DoNotCallServiceReminders: donor.DoNotCallServiceReminders, 1374 DoNotTextServiceReminders: donor.DoNotTextServiceReminders, 1375 DonorGUID: donor.DonorGUID, 1376 HomeExtension: donor.HomeExtension, 1377 DayExtension: donor.DayExtension, 1378 MapInfo: donor.MapInfo, 1379 IsSpecial: donor.IsSpecial, 1380 CrossStreet: donor.CrossStreet, 1381 Latitude: donor.Latitude, 1382 Longitude: donor.Longitude, 1383 Geocode_id: donor.Geocode_id, 1384 GeocodeTime: donor.GeocodeTime, 1385 GeocodeTimeString: donor.GeocodeTimeString, 1386 GeocodeSource: donor.GeocodeSource, 1387 GeocodeService: donor.GeocodeService, 1388 GeocodeConfidence: donor.GeocodeConfidence, 1389 GeocodeAttempts: donor.GeocodeAttempts, 1390 1391 VehicleZipCode: donation.vehicleZipCode, 1392 Pickup_id: 0, 1393 VehicleType: donation.vehicleType, 1394 VehicleTypeName: donation.vehicleTypeName, 1395 VehicleYear: donation.vehicleYear, 1396 VehicleManufacturer: donation.make, 1397 VehicleStyle: donation.model, 1398 VIN: donation.vin, 1399 AdvertismentMethod: donation.adSource, 1400 AdditionalInfo: donation.additionalInfo,
1401 VehicleColor: donation.color, 1402 VehiclePickupNotes: donation.notes, 1403 ContactPreference: donation.contactPreference, 1404 LocationAddress: donation.vehicleAddress, 1405 LocationCity: donation.vehicleCity, 1406 LocationState: donation.vehicleState, 1407 LocationZipCode: donation.vehicleZipCode, 1408 LocationLatitude: donation.vehicleLatitude, 1409 LocationLongitude: donation.vehicleLongitude, 1410 License: donation.tagNumber 1411 1412 //IPAddress: satruck.userHostAddress, 1413 //SourceType: donation.sourceType, 1414 //IsMobile: donation.isMobile 1415 }; 1416 1417 DN.Utils.postJSON 1418 ( 1419 url, 1420 //JSON.stringify({ PickupTicket: pickupticket, SourceType: 0, IsMobile: false }), 1421 JSON.stringify(vehicleticket), 1422 function(jqXHR, textStatus) 1423 { 1424 satruck.api._doCompletionRoutine("submitvehicleorder", jqXHR, completeHandler); 1425 } 1426 ); 1427 1428 }, 1429 1430 SubmitWorkflowData: function(wip) 1431 { 1432 var url = this.endpoints.submitworkflow.url; 1433 1434 var data = { Wip_id: wip.id, LogItem: JSON.stringify(wip) }; 1435 1436 try 1437 { 1438 $.ajax( 1439 { 1440 url: url, 1441 type: 'POST', 1442 data: JSON.stringify(data), 1443 global: false, 1444 contentType: 'application/json; charset=utf-8', 1445 error: function(jqXHR, textStatus, errorThrown ) 1446 { 1447 //var t = jqXHR; 1448 }, 1449 complete: function(jqXHR, textStatus) 1450 { 1451 //var t = jqXHR; 1452 } 1453 }); 1454 } 1455 catch(er) 1456 { 1457 } 1458 }, 1459 1460 LogReferral: function(wip) 1461 { 1462 var url = this.pickuphost + this.endpoints.logreferral.url; 1463 1464 var d = 1465 { 1466 Zip: wip.zip, 1467 PickupSize: wip.donation.pickupSize, 1468 Referred: wip.donation.referred, 1469 ToStore: false, 1470 IsDonorRequest: false, 1471 IsUnservicedRequest: false 1472 }; 1473 1474 DN.Utils.postJSON 1475 ( 1476 url, 1477 JSON.stringify(d), 1478 function(jqXHR, textStatus) 1479 { 1480 satruck.api._doCompletionRoutine("logreferral", jqXHR); 1481 } 1482 ); 1483 }, 1484 1485 AddItem: function(territoryId, arcId, pickupId, itemId, qty, completeHandler) 1486 { 1487 var url = this.pickuphost + this.endpoints.additem.url + 1488 "?Territory_id=" + territoryId + 1489 "&Arc_id=" + arcId + 1490 "&Pickup_id=" + pickupId + 1491 "&Item_id=" + itemId + 1492 "&Qty=" + qty + ""; 1493 1494 $.ajax( 1495 { 1496 url: url, 1497 dataType: 'json', 1498 method: 'POST', 1499 complete: function(jqXHR, textStatus) 1500 { 1501 satruck.api._doCompletionRoutine("additem", jqXHR, completeHandler); 1502 } 1503 }); 1504 1505 }, 1506 1507 RemoveItem: function(territoryId, arcId, pickupId, itemId, qty, completeHandler) 1508 { 1509 1510 var url = this.pickuphost + this.endpoints.removeitem.url + "?Territory_id=" + territoryId + "&Arc_id=" + arcId + "&Pickup_id=" + pickupId + "&Item_id=" + itemId + "&Qty=" + qty + ""; 1511 1512 $.ajax( 1513 { 1514 url: url, 1515 dataType: 'json', 1516 method: 'POST', 1517 complete: function(jqXHR, textStatus) 1518 { 1519 satruck.api._doCompletionRoutine("removeitem", jqXHR, completeHandler); 1520 } 1521 }); 1522 1523 }, 1524 1525 ConfirmationEmail: function (name, contactEmail, toEmail, address, zip, message, reason, phone, completeHandler) { 1526 var url = this.donorhost + this.endpoints.confirmationemail.url; 1527 1528 var confirmaitonEmail = 1529 { 1530 Name: name, 1531 Message: message, 1532 Address: address, 1533 ZipCode: zip, 1534 ContactEmail: contactEmail, 1535 ToEmail: toEmail, 1536 Reason: reason, 1537 Phone: phone 1538 }; 1539 1540 DN.Utils.postJSON 1541 ( 1542 url, 1543 JSON.stringify(confirmaitonEmail), 1544 function (jqXHR, textStatus) { 1545 satruck.api._doCompletionRoutine("confirmationemail", jqXHR, completeHandler); 1546 } 1547 ); 1548 1549 }, 1550 1551 ContactSubmit: function(donorId, name, contactEmail, toEmail, address, zip, message, reason, reasonName, phone, locationTerritoryId, locationId, locationZip, locationName, completeHandler) 1552 { 1553 var url = this.donorhost + this.endpoints.contactsubmit.url; 1554 //var url = 'http://satruck.dev/apidonor' + this.endpoints.contactsubmit.url; 1555 1556 var contactForm = 1557 { 1558 DonorId: donorId, 1559 Name: name, 1560 Message: message, 1561 Address: address, 1562 ZipCode: zip, 1563 ContactEmail: contactEmail, 1564 ToEmail: toEmail, 1565 Reason: reason, 1566 ReasonName: reasonName, 1567 Phone: phone, 1568 LocationTerritoryId: locationTerritoryId, 1569 LocationId: locationId, 1570 LocationZip: locationZip, 1571 LocationName: locationName 1572 }; 1573 1574 DN.Utils.postJSON 1575 ( 1576 url, 1577 JSON.stringify(contactForm), 1578 function(jqXHR, textStatus) 1579 { 1580 satruck.api._doCompletionRoutine("contactsubmit", jqXHR, completeHandler); 1581 } 1582 ); 1583 1584 }, 1585 1586 GetFAQ: function (territoryId, completeHandler) { 1587 var url = this.donorhost + this.endpoints.getfaq.url + "?tid=" + territoryId; 1588 1589 $.ajax( 1590 { 1591 url: url, 1592 complete(jqXHR, textStatus) { 1593 satruck.api._doCompletionRoutine("getfaq", jqXHR, completeHandler); 1594 } 1595 }); 1596 }, 1597 1598 LogContactAction: function (eventTime, action, faqId, faqText, territoryId, arcId, userId, ipAddress) { 1599 var url = this.logginghost + this.endpoints.contactaction.url; 1600 var contactForm = 1601 { 1602 EventTime: eventTime, 1603 Action: action, 1604 FaqId: faqId, 1605 FaqText: faqText, 1606 TerritoryId: territoryId,
1607 ArcId: arcId, 1608 UserId: userId, 1609 IpAddress: ipAddress 1610 }; 1611 1612 DN.Utils.postJSON 1613 ( 1614 url, 1615 JSON.stringify(contactForm), 1616 null 1617 ); 1618 1619 }, 1620 1621 InitialCustomerLead: function (territoryId, arcId, donorId, response, other, time, completeHandler) { 1622 var url = this.pickuphost + this.endpoints.initialcustomerlead.url; 1623 1624 var customerLeadForm = 1625 { 1626 Territory_id: territoryId, 1627 Arc_id: arcId, 1628 Donor_id: donorId, 1629 Response: response, 1630 Other: other, 1631 TimeStamp: time 1632 }; 1633 1634 DN.Utils.postJSON 1635 ( 1636 url, 1637 JSON.stringify(customerLeadForm), 1638 function (jqXHR, textStatus) { 1639 satruck.api._doCompletionRoutine("initialcustomerlead", jqXHR, completeHandler); 1640 } 1641 ); 1642 1643 }, 1644 1645 CustomerLead: function(territoryId, arcid, pickupId, response, other, time, initialRowId, completeHandler) 1646 { 1647 var url = this.pickuphost + this.endpoints.customerlead.url; 1648 1649 var customerLeadForm = 1650 { 1651 Territory_id: territoryId, 1652 Arc_id: arcid, 1653 Pickup_id: pickupId, 1654 Response: response, 1655 Other: other, 1656 TimeStamp: time, 1657 initialRowId: initialRowId 1658 }; 1659 1660 DN.Utils.postJSON 1661 ( 1662 url, 1663 JSON.stringify(customerLeadForm), 1664 function(jqXHR, textStatus) 1665 { 1666 satruck.api._doCompletionRoutine("customerlead", jqXHR, completeHandler); 1667 } 1668 ); 1669 1670 }, 1671 1672 AdMethods: function (territoryId, completeHandler) { 1673 var url = this.pickuphost + this.endpoints.admethods.url; 1674 1675 $.ajax( 1676 { 1677 url: url, 1678 dataType: 'json', 1679 data: { Territory_id: territoryId }, 1680 complete: function (jqXHR, textStatus) { 1681 satruck.api._doCompletionRoutine("admethods", jqXHR, completeHandler); 1682 } 1683 }); 1684 }, 1685 1686 LogDonorInfo: function (terrArcDonPickId, donorUserId, generic1, generic2, generic3, time, message, completeHandler) 1687 { 1688 var url = this.logginghost + this.endpoints.logdonorinfo.url; 1689 1690 var donorinfo = 1691 { 1692 TerrArcDonPickId: terrArcDonPickId, 1693 DonorUserId: donorUserId, 1694 Generic1: generic1, 1695 Generic2: generic2, 1696 Generic3: generic3, 1697 EvenTime: null, //AJ: Changed to null because the time that was being passed wass incorrect so now doing doing on back end. Needs to eventually be removed and updated in all projects 1698 Message: message 1699 }; 1700 1701 DN.Utils.postJSON 1702 ( 1703 url, 1704 JSON.stringify(donorinfo), 1705 function(jqXHR, textStatus) 1706 { 1707 satruck.api._doCompletionRoutine("logdonorinfo", jqXHR, completeHandler); 1708 } 1709 ); 1710 1711 }, 1712 1713 LogButtonClick: function(donorUserId, donationType, territoryId, arcId, donorId, donationId, buttonClicked, completeHandler) 1714 { 1715 var url = this.logginghost +this.endpoints.logbuttonclick.url; 1716 1717 var donorinfo = 1718 { 1719 DonorUserId: donorUserId, 1720 DonationType: donationType, 1721 Territory_id: territoryId, 1722 Arc_id: arcId, 1723 Donor_id: donorId, 1724 Donation_id: donationId, 1725 ButtonClicked: buttonClicked 1726 }; 1727 1728 DN.Utils.postJSON 1729 ( 1730 url, 1731 JSON.stringify(donorinfo), 1732 function(jqXHR, textStatus) 1733 { 1734 satruck.api._doCompletionRoutine("logbuttonclick", jqXHR, completeHandler); 1735 } 1736 ); 1737 }, 1738 1739 LogReSupplyPickupbuttonclick: function(donorUserId, donationType, territoryId, arcId, donorId, donationId, buttonClicked,zipcode, completeHandler) 1740 { 1741 var url = this.logginghost + this.endpoints.logReSupplyPickupbuttonclick.url; 1742 1743 var donorinfo = 1744 { 1745 DonorUserId: donorUserId, 1746 DonationType: donationType, 1747 Territory_id: territoryId, 1748 Arc_id: arcId, 1749 Donor_id: donorId, 1750 Donation_id: donationId, 1751 ButtonClicked: buttonClicked, 1752 ZipCode: zipcode 1753 }; 1754 1755 DN.Utils.postJSON 1756 ( 1757 url, 1758 JSON.stringify(donorinfo), 1759 function(jqXHR, textStatus) 1760 { 1761 satruck.api._doCompletionRoutine("logReSupplyPickupbuttonclick", jqXHR, completeHandler); 1762 } 1763 ); 1764 }, 1765 1766 GetDonationSummary: function (donorUserId, pageNumber, pageSize, completeHandler) 1767 { 1768 var url = this.pickuphost + this.endpoints.getdonationsummary.url + "?donorUserId=" + donorUserId + "&PageNumber=" + pageNumber + "&PageSize=" + pageSize; 1769 1770 $.ajax( 1771 { 1772 url:url, 1773 dataType: 'json',
1774 complete: function (jqXHR, textStatus) { 1775 satruck.api._doCompletionRoutine("getdonationsummary", jqXHR, completeHandler); 1776 } 1777 }); 1778 1779 }, 1780 1781 GetPartnerDonationSummary: function (partnerUserId, pageNumber, pageSize, completeHandler) { 1782 var url = this.pickuphost + this.endpoints.getpartnerdonationsummary.url + "?PartnerUserId=" + partnerUserId + "&PageNumber=" + pageNumber + "&PageSize=" + pageSize; 1783 1784 $.ajax( 1785 { 1786 url: url, 1787 dataType: 'json', 1788 complete: function (jqXHR, textStatus) { 1789 satruck.api._doCompletionRoutine("getpartnerdonationsummary", jqXHR, completeHandler); 1790 } 1791 }); 1792 1793 }, 1794 1795 GetDonationDetail: function(donationType, territoryId, arcId, donationId, completeHandler) 1796 { 1797 var url = this.pickuphost + this.endpoints.getdonationdetail.url + "?DonationType=" + donationType + "&Territory_id=" + territoryId + "&Arc_id=" + arcId + "&Donation_id=" + donationId; 1798 1799 $.ajax( 1800 { 1801 url: url, 1802 dataType: 'json', 1803 complete: function (jqXHR, textStatus) { 1804 satruck.api._doCompletionRoutine("getdonationdetail", jqXHR, completeHandler); 1805 } 1806 }); 1807 }, 1808 1809 GetDonationDetailForNextPickup: function (territoryId, arcId, donorId, completeHandler) { 1810 var url = this.pickuphost + this.endpoints.getdonationdetailfornextpickup.url + "?Territory_id=" + territoryId + "&Arc_id=" + arcId + "&Donor_id=" + donorId; 1811 1812 $.ajax( 1813 { 1814 url: url, 1815 dataType: 'json', 1816 complete: function (jqXHR, textStatus) { 1817 satruck.api._doCompletionRoutine("getdonationdetailfornextpickup", jqXHR, completeHandler); 1818 } 1819 }); 1820 }, 1821 1822 EditPickupOrder: function (donation, donor, sourceType, isMobile, completeHandler) { 1823 1824 var url = this.pickuphost + this.endpoints.editpickup.url; 1825 1826 var pickupticketedits = 1827 { 1828 ForceNewDonor: donation.forceNewDonor, 1829 Territory_id: donation.DonationDetails.Territory_id, 1830 Arc_id: donation.DonationDetails.Arc_id, 1831 Donor_id: donation.DonationDetails.Donor_id, 1832 ZipCode: donation.DonationDetails.ZipCode,
1833 FirstName: !donor.IsPartnerUser ? donor.FirstName : donation.DonationDetails.FirstName, 1834 LastName: !donor.IsPartnerUser ? donor.LastName : donation.DonationDetails.LastName, 1835 HomePhone: !donor.IsPartnerUser ? donor.HomePhone : donation.DonationDetails.HomePhone, 1836 DayPhone: !donor.IsPartnerUser ? donor.DayPhone : donation.DonationDetails.DayPhone, 1837 AddressLine1: !donor.IsPartnerUser ? donor.AddressLine1 : donation.DonationDetails.AddressLine1, 1838 AddressLine2: !donor.IsPartnerUser ? donor.AddressLine2 : donation.DonationDetails.AddressLine2, 1839 City: !donor.IsPartnerUser ? donor.City : donation.DonationDetails.City, 1840 State: !donor.IsPartnerUser ? donor.State : donation.DonationDetails.State, 1841 OtherInfo: donor.OtherInfo, 1842 Email: !donor.IsPartnerUser ? donor.Email : donation.DonationDetails.Email, 1843 IsBusiness: donor.IsBusiness, 1844 NoSolicitation: donor.NoSolicitation, 1845 NoServiceReminders: donor.NoServiceReminders, 1846 DoNotEmailSolicitation: donor.DoNotEmailSolicitation, 1847 DoNotCallSolicitation: donor.DoNotCallSolicitation, 1848 DoNotTextSolicitation: donor.DoNotTextSolicitation, 1849 DoNotEmailServiceReminders: donor.DoNotEmailServiceReminders, 1850 DoNotCallServiceReminders: donor.DoNotCallServiceReminders, 1851 DoNotTextServiceReminders: donor.DoNotTextServiceReminders, 1852 DonorGUID: donor.DonorGuid, 1853 Pickup_id: donation.DonationTypeSummary.Pickup_id, 1854 DonatedItems: donation.DonationDetails.DonationTypeDetail.Items, 1855 DonatedItemsArray: donation.DonationDetails.DonationTypeDetail.PickupOrderItems, 1856 Instructions: donation.DonationDetails.DonationTypeDetail.Instructions, 1857 CallAheadMinutes: donation.DonationDetails.DonationTypeDetail.CallAheadTime, 1858 ScheduleDate: donation.DonationDetails.DonationTypeDetail.StatusDate, 1859 Sector_id: donation.DonationDetails.DonationTypeDetail.Sector_id, 1860 Group_id: donation.DonationDetails.DonationTypeDetail.Group_id, 1861 Route_id: 0, 1862 PickupSize: donation.DonationDetails.DonationTypeDetail.PickupSize, 1863 IPAddress: satruck.userHostAddress, 1864 HasCustomItem: donation.DonationDetails.DonationTypeDetail.HasCustomItem, 1865 SourceType: sourceType, 1866 IsMobile: isMobile, 1867 HomeExtension: donor.HomeExtension, 1868 DayExtension: donor.DayExtension, 1869 MapInfo: donor.MapInfo, 1870 IsSpecial: donor.IsSpecial, 1871 CrossStreet: donor.CrossStreet, 1872 Latitude: donor.Latitude, 1873 Longitude: donor.Longitude, 1874 Geocode_id: donor.Geocode_id, 1875 GeocodeTime: donor.GeocodeTime, 1876 GeocodeTimeString: donor.GeocodeTimeString, 1877 GeocodeSource: donor.GeocodeSource, 1878 GeocodeService: donor.GeocodeService, 1879 GeocodeConfidence: donor.GeocodeConfidence, 1880 GeocodeAttempts: donor.GeocodeAttempts 1881 }; 1882 1883 $.ajax( 1884 { 1885 url: url, 1886 data: JSON.stringify(pickupticketedits), 1887 headers: { 1888 'Accept': 'application/json', 1889 'Content-Type': 'application/json' 1890 }, 1891 contentType: "json", 1892 type: "POST", 1893 complete: function (jqXHR, textStatus) { 1894 satruck.api._doCompletionRoutine("editpickup", jqXHR, completeHandler); 1895 } 1896 }); 1897 1898 }, 1899 1900 CancelPickup: function(territoryId, arcId, pickupId, sourceType, isMobile, completeHandler) 1901 { 1902 var url = this.pickuphost + this.endpoints.cancelpickup.url + "?Territory_id=" + territoryId + "&Arc_id=" + arcId + "&Pickup_id=" + pickupId + "&SourceType=" + sourceType+ "&isMobile=" + isMobile; 1903 1904 $.ajax( 1905 { 1906 url: url, 1907 contentType: "json", 1908 method: 'POST', 1909 complete: function (jqXHR, textStatus) { 1910 satruck.api._doCompletionRoutine("cancelpickup", jqXHR, completeHandler); 1911 } 1912 }); 1913 1914 }, 1915 1916 CancelVehicle: function(territoryId, arcId, pickupId, sourceType, isMobile, completeHandler) 1917 { 1918 var url = this.vehiclehost + this.endpoints.cancelvehicle.url + "?Territory_id=" + territoryId + "&Arc_id=" + arcId + "&Pickup_id=" + pickupId + "&SourceType=" + sourceType + "&isMobile=" + isMobile; 1919 1920 $.ajax( 1921 { 1922 url: url, 1923 contentType: "json", 1924 method: 'POST', 1925 complete: function (jqXHR, textStatus) { 1926 satruck.api._doCompletionRoutine("cancelvehicle", jqXHR, completeHandler); 1927 } 1928 }); 1929 }, 1930 1931 EmailPickupWebReceipt: function(territoryId, arcId, pickupId, completeHandler) 1932 { 1933 var url = this.pickuphost + this.endpoints.emailpickupwebreceipt.url + "?Territory_id=" + territoryId + "&Arc_id=" + arcId + "&Pickup_id=" + pickupId; 1934 1935 $.ajax( 1936 { 1937 url: url, 1938 dataType: 'json', 1939 method: 'POST', 1940 complete: function (jqXHR, textStatus) { 1941 satruck.api._doCompletionRoutine("emailpickupwebreceipt", jqXHR, completeHandler); 1942 } 1943 }); 1944 }, 1945 1946 EmailPickupWebReceiptToEmail: function (territoryId, arcId, pickupId, email, completeHandler) { 1947 var url = this.pickuphost + this.endpoints.emailpickupwebreceipttoemail.url + "?Territory_id=" + territoryId + "&Arc_id=" + arcId + "&Pickup_id=" + pickupId + "&Email=" + email; 1948 1949 $.ajax( 1950 { 1951 url: url, 1952 dataType: 'json', 1953 method: 'POST', 1954 complete: function (jqXHR, textStatus) { 1955 satruck.api._doCompletionRoutine("emailpickupwebreceipttoemail", jqXHR, completeHandler); 1956 } 1957 }); 1958 }, 1959 1960 EmailDropOffWebReceipt: function (dropoffTicketId, completeHandler) 1961 { 1962 var url = this.pickuphost + this.endpoints.emaildropoffwebreceipt.url + "?DropOffTicketId=" + dropoffTicketId; 1963 1964 $.ajax( 1965 { 1966 url: url, 1967 dataType: 'json', 1968 method: 'POST', 1969 complete: function (jqXHR, textStatus) { 1970 satruck.api._doCompletionRoutine("emaildropoffwebreceipt", jqXHR, completeHandler); 1971 } 1972 }); 1973 }, 1974 1975 GetTruckStatus: function (territoryId, arcId, pickupId, completeHandler) { 1976 var url = this.tracktruckhost + this.endpoints.gettruckstatus.url + "?Territory_id=" + territoryId + "&Arc_id=" + arcId + "&Pickup_id=" + pickupId; 1977 1978 $.ajax( 1979 { 1980 url: url, 1981 dataType: 'json', 1982 method: 'GET', 1983 complete: function (jqXHR, textStatus) { 1984 satruck.api._doCompletionRoutine("gettruckstatus", jqXHR, completeHandler); 1985 } 1986 }); 1987 }, 1988 1989 DonorNotificationsEnabled: function (territoryId, completeHandler) { 1990 var url = this.tracktruckhost + this.endpoints.donornotificationsenabled.url + "?Territory_id=" + territoryId; 1991 1992 $.ajax( 1993 { 1994 url: url, 1995 dataType: 'json', 1996 method: 'GET', 1997 complete: function (jqXHR, textStatus) { 1998 satruck.api._doCompletionRoutine("donornotificationsenabled", jqXHR, completeHandler); 1999 } 2000 }); 2001 }, 2002 2003 GetTrackTruckTerritoryAndARCSettings: function (territoryId, arcId, completeHandler) { 2004 var url = this.tracktruckhost + this.endpoints.getterritoryandarcsett
2004ings.url + "?Territory_id=" + territoryId + "&Arc_id=" + arcId; 2005 2006 $.ajax( 2007 { 2008 url: url, 2009 dataType: 'json', 2010 method: 'GET', 2011 complete: function (jqXHR, textStatus) { 2012 satruck.api._doCompletionRoutine("getterritoryandarcsettings", jqXHR, completeHandler); 2013 } 2014 }); 2015 }, 2016 2017 GetTicketETA: function (territoryId, arcId, pickupId, completeHandler) { 2018 var url = this.tracktruckhost + this.endpoints.getticketeta.url + "?Territory_id=" + territoryId + "&Arc_id=" + arcId + "&Pickup_id=" + pickupId; 2019 2020 $.ajax( 2021 { 2022 url: url, 2023 dataType: 'json', 2024 method: 'GET', 2025 complete: function (jqXHR, textStatus) { 2026 satruck.api._doCompletionRoutine("getticketeta", jqXHR, completeHandler); 2027 } 2028 }); 2029 }, 2030 2031 LogUtilizationEvent: function (territoryId, arcId, donorId, pickupId, eventData, sourceTrackingTag,referrer, eventId, completeHandler) { 2032 var url = this.tracktruckhost + this.endpoints.logutilizationevent.url + "?territoryId=" + territoryId + "&arcId=" + arcId + "&donorId=" + donorId + "&pickupId=" + pickupId + "&eventData=" + eventData + "&sourceTrackingTag=" + sourceTrackingTag + "&referrer=" + referrer + "&eventId=" + eventId; 2033 2034 $.ajax( 2035 { 2036 url: url, 2037 dataType: 'json', 2038 method: 'POST', 2039 complete: function (jqXHR, textStatus) { 2040 satruck.api._doCompletionRoutine("logutilizationevent", jqXHR, completeHandler); 2041 } 2042 }); 2043 }, 2044 2045 GetDonorInfoFromString: function (donorInfoString, completeHandler) { 2046 var url = this.donorhost + this.endpoints.getdonorinfofromstring.url + "?donorInfoString=" + donorInfoString; 2047 2048 $.ajax( 2049 { 2050 url: url, 2051 dataType: 'json', 2052 method: 'GET', 2053 complete: function (jqXHR, textStatus) { 2054 satruck.api._doCompletionRoutine("getdonorinfofromstring", jqXHR, completeHandler); 2055 } 2056 }); 2057 }, 2058 2059 GetArcNotificationSettings: function (territoryId, arcId, completeHandler) { 2060 var url = this.tracktruckhost + this.endpoints.getarcnotificationsettings.url + "?TerritoryId=" + territoryId + "&ArcId=" + arcId; 2061 2062 $.ajax( 2063 { 2064 url: url, 2065 dataType: 'json', 2066 method: 'GET', 2067 complete: function (jqXHR, textStatus) { 2068 satruck.api._doCompletionRoutine("getarcnotificationsettings", jqXHR, completeHandler); 2069 } 2070 }); 2071 }, 2072 2073 GetPickupNotificationSetting: function (territoryId, arcId, pickupId, completeHandler) { 2074 var url = this.tracktruckhost + this.endpoints.getpickupnotificationsetting.url + "?TerritoryId=" + territoryId + "&ArcId=" + arcId + "&PickupId=" + pickupId; 2075 2076 $.ajax( 2077 { 2078 url: url, 2079 dataType: 'json', 2080 method: 'GET', 2081 complete: function (jqXHR, textStatus) { 2082 satruck.api._doCompletionRoutine("getpickupnotificationsetting", jqXHR, completeHandler); 2083 } 2084 }); 2085 }, 2086 2087 UpdatePickupNotificationSetting: function (setting, completeHandler) { 2088 var url = this.tracktruckhost + this.endpoints.updatepickupnotificationsetting.url; 2089 2090 $.ajax( 2091 { 2092 url: url, 2093 data: JSON.stringify(setting), 2094 headers: { 2095 'Accept': 'application/json', 2096 'Content-Type': 'application/json' 2097 }, 2098 dataType: 'json', 2099 method: 'POST', 2100 complete: function (jqXHR, textStatus) { 2101 satruck.api._doCompletionRoutine("updatepickupnotificationsetting", jqXHR, completeHandler); 2102 } 2103 }); 2104 }, 2105 2106 GetLatestSurvey: function (territoryId,arcId,pickupId, completeHandler) { 2107 var url = this.tracktruckhost + this.endpoints.getlatestsurvey.url + "?TerritoryId="+territoryId+"&ArcId="+arcId+"&PickupId=" + pickupId; 2108 2109 $.ajax( 2110 { 2111 url: url, 2112 dataType: 'json', 2113 method: 'GET', 2114 complete: function (jqXHR, textStatus) { 2115 satruck.api._doCompletionRoutine("getlatestsurvey", jqXHR, completeHandler); 2116 } 2117 }); 2118 }, 2119 2120 SaveSurvey: function (survey, completeHandler) { 2121 debugger 2122 var url = this.tracktruckhost + this.endpoints.savesurvey.url; 2123 2124 $.ajax( 2125 { 2126 url: url, 2127 data: JSON.stringify(survey), 2128 headers: { 2129 'Accept': 'application/json', 2130 'Content-Type': 'application/json' 2131 }, 2132 dataType: 'json', 2133 method: 'POST', 2134 complete: function (jqXHR, textStatus) { 2135 satruck.api._doCompletionRoutine("savesurvey", jqXHR, completeHandler); 2136 } 2137 }); 2138 }, 2139 2140 LogClientException: function(message, location, line, meta) 2141 { 2142 var url = this.endpoints.clienterrorlog.url; 2143 2144 //$.ajax( 2145 //{ 2146 // url: url, 2147 // timeout: 15000, 2148 // type: 'post', 2149 // global: false, 2150 // data: 2151 // { 2152 // "WorkstationName": "", 2153 // "ApplicationVersion": satruck.appVersion, 2154 // "Application": "SaTruck", 2155 // "Module": location, 2156 // "Method": line, 2157 // "Notes": null, 2158 // "Generic1": meta, 2159 // "Generic2": null, 2160 // "Generic3": null, 2161 // "Message": message 2162 // }, 2163 // complete: function(jqXHR, textStatus) 2164 // { 2165 // if (jqXHR && (jqXHR.statusText == "success" || jqXHR.statusText == "OK")) 2166 // { 2167 // var apiResult = $.parseJSON(jqXHR.responseText); 2168 // if (apiResult.ErrorMessage == "SESSION_TIMEOUT") 2169 // { 2170 // document.location = satruck.config.urls.login; 2171 // } 2172 // } 2173 // }, 2174 // error: function(jqXHR, textStatus, errorThrown){/*Override to prevent endless loop*/} 2175 //}); 2176 }, 2177 2178 Encrypt: function(ssn, completeHandler) 2179 { 2180 var url = this.endpoints.encrypt.url + "?toencrypt=" + ssn; 2181 2182 $.ajax( 2183 { 2184 url: url, 2185 dataType: 'json',
2186 complete: function (jqXHR, textStatus) 2187 { 2188 satruck.api._doCompletionRoutine("encrypt", jqXHR, completeHandler); 2189 } 2190 }); 2191 } 2192};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.