michael@0: function parseQueryString(str) michael@0: { michael@0: if (str == "") michael@0: return {}; michael@0: michael@0: var paramArray = str.split("&"); michael@0: var regex = /^([^=]+)=(.*)$/; michael@0: var params = {}; michael@0: for (var i = 0, sz = paramArray.length; i < sz; i++) michael@0: { michael@0: var match = regex.exec(paramArray[i]); michael@0: if (!match) michael@0: throw "Bad parameter in queryString! '" + paramArray[i] + "'"; michael@0: params[decodeURIComponent(match[1])] = decodeURIComponent(match[2]); michael@0: } michael@0: michael@0: return params; michael@0: } michael@0: michael@0: function getPosition(expectedAccessToken, providedAccessToken, desiredAccessToken) michael@0: { michael@0: var response = { michael@0: status: "OK", michael@0: location: { michael@0: lat: providedAccessToken ? michael@0: (expectedAccessToken == providedAccessToken ? 200 : 404) : 200, michael@0: lng: -122.08769, michael@0: }, michael@0: accuracy: 100, michael@0: access_token: desiredAccessToken michael@0: }; michael@0: michael@0: return JSON.stringify(response); michael@0: } michael@0: michael@0: function handleRequest(request, response) michael@0: { michael@0: var params = parseQueryString(request.queryString); michael@0: michael@0: response.setStatusLine("1.0", 200, "OK"); michael@0: response.setHeader("Cache-Control", "no-cache", false); michael@0: response.setHeader("Content-Type", "aplication/x-javascript", false); michael@0: response.write(getPosition(params.expected_access_token, params.access_token, michael@0: params.desired_access_token)); michael@0: }