Пример #1
0
        public APIGatewayProxyResponse GetBooks(APIGatewayProxyRequest request, ILambdaContext context)
        {
            var dbContext = DynamoDbUtil.BuildContext();

            var booksSerch = dbContext.ScanAsync <Book>(new List <ScanCondition>()).GetRemainingAsync();

            var books = booksSerch.Result;

            return(ResponseBuilder.Http200(JsonConvert.SerializeObject(books), new Dictionary <string, string> {
                { "Content-Type", "application/json" }
            }));
        }
Пример #2
0
        public APIGatewayProxyResponse PostBook(APIGatewayProxyRequest request, ILambdaContext context)
        {
            var book = JsonConvert.DeserializeObject <Book>(request.Body);

            book.Id = Guid.NewGuid().ToString();

            var dbContext = DynamoDbUtil.BuildContext();

            dbContext.SaveAsync(book).Wait();

            var reponse = ResponseBuilder.Http200(JsonConvert.SerializeObject(book.Id));

            return(reponse);
        }
Пример #3
0
        public APIGatewayProxyResponse DeleteBook(APIGatewayProxyRequest request, ILambdaContext context)
        {
            var qryParams = request.QueryStringParameters;

            context.Logger.LogLine(string.Join(',', qryParams.Keys));

            var dbContext = DynamoDbUtil.BuildContext();

            var bookData = dbContext.LoadAsync <Book>(qryParams["bookId"]);

            var book = bookData.Result;

            dbContext.DeleteAsync(book).Wait();

            return(ResponseBuilder.Http200(JsonConvert.SerializeObject(true)));
        }
Пример #4
0
        public APIGatewayProxyResponse ResetBooks(APIGatewayProxyRequest request, ILambdaContext context)
        {
            var dbContext = DynamoDbUtil.BuildContext();

            var booksSerch = dbContext.ScanAsync <Book>(new List <ScanCondition>()).GetRemainingAsync();

            var books = booksSerch.Result;

            foreach (var book in books)
            {
                dbContext.DeleteAsync(book).Wait();
            }

            foreach (var book in _keepList)
            {
                dbContext.SaveAsync(book).Wait();
            }

            return(ResponseBuilder.Http200(JsonConvert.SerializeObject(true)));
        }
Пример #5
0
        public APIGatewayProxyResponse PutBook(APIGatewayProxyRequest request, ILambdaContext context)
        {
            var qryParams = request.QueryStringParameters;

            context.Logger.LogLine(string.Join(',', qryParams.Values));

            var dbContext = DynamoDbUtil.BuildContext();

            var existingBook = dbContext.LoadAsync <Book>(qryParams["bookId"]).Result;

            var updateBook = JsonConvert.DeserializeObject <Book>(request.Body);

            existingBook.Authors    = updateBook.Authors;
            existingBook.Genre      = updateBook.Genre;
            existingBook.Title      = updateBook.Title;
            existingBook.YearRead   = updateBook.YearRead;
            existingBook.Shelf      = updateBook.Shelf;
            existingBook.CoverImage = updateBook.CoverImage;
            existingBook.Format     = updateBook.Format;

            dbContext.SaveAsync(existingBook).Wait();

            return(ResponseBuilder.Http200(JsonConvert.SerializeObject(existingBook)));
        }