|
1 function parseQueryString(str) |
|
2 { |
|
3 if (str == "") |
|
4 return {}; |
|
5 |
|
6 var paramArray = str.split("&"); |
|
7 var regex = /^([^=]+)=(.*)$/; |
|
8 var params = {}; |
|
9 for (var i = 0, sz = paramArray.length; i < sz; i++) |
|
10 { |
|
11 var match = regex.exec(paramArray[i]); |
|
12 if (!match) |
|
13 throw "Bad parameter in queryString! '" + paramArray[i] + "'"; |
|
14 params[decodeURIComponent(match[1])] = decodeURIComponent(match[2]); |
|
15 } |
|
16 |
|
17 return params; |
|
18 } |
|
19 |
|
20 function getPosition(expectedAccessToken, providedAccessToken, desiredAccessToken) |
|
21 { |
|
22 var response = { |
|
23 status: "OK", |
|
24 location: { |
|
25 lat: providedAccessToken ? |
|
26 (expectedAccessToken == providedAccessToken ? 200 : 404) : 200, |
|
27 lng: -122.08769, |
|
28 }, |
|
29 accuracy: 100, |
|
30 access_token: desiredAccessToken |
|
31 }; |
|
32 |
|
33 return JSON.stringify(response); |
|
34 } |
|
35 |
|
36 function handleRequest(request, response) |
|
37 { |
|
38 var params = parseQueryString(request.queryString); |
|
39 |
|
40 response.setStatusLine("1.0", 200, "OK"); |
|
41 response.setHeader("Cache-Control", "no-cache", false); |
|
42 response.setHeader("Content-Type", "aplication/x-javascript", false); |
|
43 response.write(getPosition(params.expected_access_token, params.access_token, |
|
44 params.desired_access_token)); |
|
45 } |