1 $group
2 class HttpRequest
3 ctor
4 set this.headers = []
5 m setAuthBasic
6 param user
7 param psw
8 var credentials = 'username=' + user + '&password=' + psw;
9 _ this.setHeader('Authorization', 'Basic ' + Base64.encode(credentials))
10 m setHeader
11 param name
12 param value
13 _ this.headers.push({ name: name, value: value })
14 m send
15 param args
16 var
17 decl timeout = (args.timeout || 6 * 60 * 60 * 1000)
18 decl method = args.method
19 decl url = args.url
20 decl data = args.data
21 decl success = args.success
22 decl failure = args.failure
23 decl errorHandler = args.errorHandler
24 decl isGetRequest = method === "GET"
25 var self = this
26 set success = _.isFunction(success) ? success : function(data) { console.log(data) }
27 set failure = _.isFunction(failure) ? failure : function(data) { console.log(data) }
28 set errorHandler = _.isFunction(errorHandler) ? errorHandler : function(data) { console.log(data) }
29 log 'sending ajax'
30 _ $.ajax
31 {
32 @ url url
33 @ type method
34 @ data data
35 @ timeout timeout
36 @ cache false
37 # Let jquery turn data map into query string only on GET requests.
38 @ processData isGetRequest
39 @ beforeSend
40 function
41 param xhr
42 foreach h in self.headers
43 _ xhr.setRequestHeader(h.name, h.value)
44 @ success success
45 @ failure failure
46 @ error errorHandler
47 @ dataType 'json'