public static HttpResponseMessage Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = nameof(GetOngoingGame))] HttpRequestMessage req, TraceWriter log) { using (var analytic = new AnalyticService(new RequestTelemetry { Name = nameof(GetOngoingGame) })) { try { var email = req.GetQueryNameValuePairs().FirstOrDefault(kvp => kvp.Key == "email").Value; if (string.IsNullOrWhiteSpace(email)) { return(req.CreateErrorResponse(HttpStatusCode.BadRequest, "email address required")); } using (var client = new CosmosDataService()) { var game = client.GetOngoingGame(email); return(req.CreateResponse(HttpStatusCode.OK, game as Object)); } } catch (Exception e) { // track exceptions that occur analytic.TrackException(e); return(req.CreateErrorResponse(HttpStatusCode.BadRequest, e)); } } }
public static HttpResponseMessage Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = nameof(GetGameByEntryCode))] HttpRequestMessage req, TraceWriter log) { using (var analytic = new AnalyticService(new RequestTelemetry { Name = nameof(GetGameByEntryCode) })) { try { var kvps = req.GetQueryNameValuePairs(); var email = kvps.FirstOrDefault(kvp => kvp.Key == "email").Value; var entryCode = kvps.FirstOrDefault(kvp => kvp.Key == "entryCode").Value; using (var client = new CosmosDataService()) { var existingGame = client.GetOngoingGame(email); if (existingGame != null) { return(req.CreateErrorResponse(HttpStatusCode.Conflict, "User already has an ongoing game")); } var openGame = client.GetGameByEntryCode(entryCode); return(req.CreateResponse(HttpStatusCode.OK, openGame)); } } catch (Exception e) { // track exceptions that occur analytic.TrackException(e); return(req.CreateErrorResponse(HttpStatusCode.BadRequest, e.Message, e)); } } }