public Response GetHelpRequestsSummary(APIGatewayProxyRequest request, ILambdaContext context) { var getRequestGateway = new INeedHelpGateway(new Cv19SupportDbContext(_connectionString)); var getRequestObject = new GetHelpRequestsUseCase(getRequestGateway); try { var resp = getRequestObject.GetHelpRequestsSummary(); LambdaLogger.Log(("Records retrieval success: " + resp.ToString())); var response = new Response(); response.isBase64Encoded = true; response.statusCode = "200"; response.body = JsonConvert.SerializeObject(resp); return(response); } catch (Exception e) { LambdaLogger.Log("Error: " + e.Message); var response = new Response(); response.isBase64Encoded = true; response.statusCode = "500"; response.body = "Error processing request: " + ". Error Details: " + e.Message + e.StackTrace; return(response); } }
public Response UpdateFoodDeliveryRequest(APIGatewayProxyRequest request, ILambdaContext context) { var updateRequestGateway = new INeedHelpGateway(new Cv19SupportDbContext(_connectionString)); var updateRequestObject = new UpdateFoodDeliveryUseCase(updateRequestGateway); try { var request_params = request.PathParameters; var data = JsonConvert.DeserializeObject <FoodDelivery>(request.Body); updateRequestObject.UpdateFoodDelivery(data); LambdaLogger.Log(("Records update success.")); var response = new Response(); response.isBase64Encoded = true; response.statusCode = "200"; return(response); } catch (Exception e) { LambdaLogger.Log("Error: " + e.Message); var response = new Response(); response.isBase64Encoded = true; response.statusCode = "500"; response.body = "Error processing request: " + ". Error Details: " + e.Message + e.StackTrace; return(response); } }
public Response GetFoodDeliveriesRequestForForm(APIGatewayProxyRequest request, ILambdaContext context) { var getRequestGateway = new INeedHelpGateway(new Cv19SupportDbContext(_connectionString)); var getRequestsForFormObject = new GetFoodDeliveriesForFormUseCase(getRequestGateway); try { var request_params = request.PathParameters; var request_id = Int32.Parse(request_params["id"]); var resp = getRequestsForFormObject.GetFoodDeliveriesForForm(request_id); LambdaLogger.Log(("Records retrieval success: " + resp.ToString())); var response = new Response(); response.isBase64Encoded = true; response.statusCode = "200"; response.body = JsonConvert.SerializeObject(resp); return(response); } catch (Exception e) { LambdaLogger.Log("Error: " + e.Message); var response = new Response(); response.isBase64Encoded = true; response.statusCode = "500"; response.body = "Error processing request: " + ". Error Details: " + e.Message + e.StackTrace; return(response); } }
public Response GenerateDeliverySchedule(APIGatewayProxyRequest request, ILambdaContext context) { var getRequestGateway = new INeedHelpGateway(new Cv19SupportDbContext(_connectionString)); var driveHelper = new DriveHelper(); var utilityHelper = new UtilityHelper(getRequestGateway); var deliveryScheduleObject = new DeliveryScheduleUseCase(getRequestGateway, driveHelper); try { var request_params = request.QueryStringParameters; var limit = Int32.Parse(request_params["limit"]); var confirmed = bool.Parse(request_params["confirmed"]); var deliveryDay = utilityHelper.GetNextWorkingDay(DateTime.Today); var resp = deliveryScheduleObject.CreateDeliverySchedule(limit, confirmed, deliveryDay); LambdaLogger.Log(("Records retrieval success: " + resp.ToString())); var response = new Response(); response.isBase64Encoded = true; response.statusCode = "200"; response.body = JsonConvert.SerializeObject(resp); return(response); } catch (Exception e) { LambdaLogger.Log("Error: " + e.Message); var response = new Response(); response.isBase64Encoded = true; response.statusCode = "500"; response.body = "Error processing request: " + ". Error Details: " + e.Message + e.StackTrace; return(response); } }
public Response PatchHelpRequest(APIGatewayProxyRequest request, ILambdaContext context) { var getRequestGateway = new INeedHelpGateway(new Cv19SupportDbContext(_connectionString)); var updateRequestObject = new UpdateHelpRequestUseCase(getRequestGateway); var request_params = request.PathParameters; var request_data = JsonConvert.DeserializeObject <ResidentSupportAnnexPatch>(request.Body); var request_id = Int32.Parse(request_params["id"]); try { LambdaLogger.Log(request.Body); updateRequestObject.PatchHelpRequest(request_id, request_data); LambdaLogger.Log(("Record update success")); var response = new Response(); response.isBase64Encoded = true; response.statusCode = "200"; response.body = "Record Updated"; return(response); } catch (Exception e) { LambdaLogger.Log("Error: " + e.Message); var response = new Response(); response.isBase64Encoded = true; response.statusCode = "500"; response.body = "Error processing request: " + ". Error Details: " + e.Message + e.StackTrace; return(response); } }
public Response GetHelpRequests(APIGatewayProxyRequest request, ILambdaContext context) { var getRequestGateway = new INeedHelpGateway(new Cv19SupportDbContext(_connectionString)); var getRequestObject = new GetHelpRequestsUseCase(getRequestGateway); var requestParams = request.QueryStringParameters; bool master = false; string uprn = null; string postcode = null; try { master = bool.Parse(requestParams["master"]); LambdaLogger.Log("master: " + master); } catch (Exception e) { LambdaLogger.Log("master parameter not provided."); } try { uprn = requestParams["uprn"]; LambdaLogger.Log("uprn: " + uprn); } catch (Exception e) { LambdaLogger.Log("uprn parameter not provided."); } try { postcode = requestParams["postcode"]; LambdaLogger.Log("postcode: " + postcode); } catch (Exception e) { LambdaLogger.Log("postcode parameter not provided."); } try { var resp = getRequestObject.GetHelpRequests(uprn, postcode, master) .Select(x => x.ToResponse()); LambdaLogger.Log("Records retrieval success: " + JsonConvert.SerializeObject(resp)); var response = new Response(); response.isBase64Encoded = true; response.statusCode = "200"; response.body = JsonConvert.SerializeObject(resp); return(response); } catch (Exception e) { LambdaLogger.Log("Error: " + e.Message); var response = new Response(); response.isBase64Encoded = true; response.statusCode = "500"; response.body = "Error processing request: " + ". Error Details: " + e.Message + e.StackTrace; return(response); } }
public void SetUp() { _connectionString = Environment.GetEnvironmentVariable("CV_19_DB_CONNECTION"); const string connectionString = "Host=localhost;Database=i-need-help-test;Username=postgres;Password=mypassword"; _context = new Cv19SupportDbContext(_connectionString ?? connectionString); ClearResidentSupportAnnexTable(); ClearDeliveryBatchTable(); ClearDeliveryReportDataTable(); ClearBankHolidays(); if (_connectionString == null) { Environment.SetEnvironmentVariable("CV_19_DB_CONNECTION", connectionString); } _classUnderTest = new INeedHelpGateway(_context); }
public Response DeleteDeliveryBatch(APIGatewayProxyRequest request, ILambdaContext context) { var deleteBatchGateway = new INeedHelpGateway(new Cv19SupportDbContext(_connectionString)); var driveHelper = new DriveHelper(); var deleteBatchObject = new DeliveryScheduleUseCase(deleteBatchGateway, driveHelper); var requestParams = request.PathParameters; int batchId; try { batchId = Int32.Parse(requestParams["id"]); } catch { var response = new Response(); response.isBase64Encoded = true; LambdaLogger.Log("No batch id specified."); response.statusCode = "400"; return(response); } try { deleteBatchObject.DeleteDeliveryBatch(batchId); var response = new Response(); response.isBase64Encoded = true; LambdaLogger.Log("Batch successfully deleted."); response.statusCode = "200"; return(response); } catch (Exception e) { LambdaLogger.Log("Error: " + e.Message); var response = new Response(); response.isBase64Encoded = true; response.statusCode = "500"; response.body = "Error processing request: " + ". Error Details: " + e.Message + e.StackTrace; return(response); } }
public Response GetDeliveryBatch(APIGatewayProxyRequest request, ILambdaContext context) { var getBatchGateway = new INeedHelpGateway(new Cv19SupportDbContext(_connectionString)); var getBatchObject = new DeliveryScheduleUseCase(getBatchGateway, null); var utilityHelper = new UtilityHelper(getBatchGateway); try { var deliveryDay = utilityHelper.GetNextWorkingDay(DateTime.Today); var resp = getBatchObject.GetDeliveryBatch(deliveryDay); var response = new Response(); response.isBase64Encoded = true; if (resp == null) { LambdaLogger.Log("No batch available for date specified."); response.statusCode = "200"; } else { LambdaLogger.Log("Batch retrieval success: " + JsonConvert.SerializeObject(resp)); response.statusCode = "200"; response.body = JsonConvert.SerializeObject(resp); } return(response); } catch (Exception e) { LambdaLogger.Log("Error: " + e.Message); var response = new Response { isBase64Encoded = true, statusCode = "500", body = "Error processing request: " + ". Error Details: " + e.Message + e.StackTrace }; return(response); } }
public void SetUp() { _classUnderTest = new INeedHelpGateway(DbContext); }