Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 4
0
        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);
            }
        }
Ejemplo n.º 5
0
        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);
            }
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 8
0
        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);
            }
        }
Ejemplo n.º 9
0
        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);
 }