Beispiel #1
0
        protected override async Task <LambdaProxyResponse> ExecutionFunction(
            ApiGatewayProxyRequest request)
        {
            _context.Logger.LogLine(request.Body);
            var requestBody = FunctionBody.GenerateFromRequest(request, _context);
            var htmlWeb     = new HtmlWeb();
            var url         = requestBody.url;

            var document = htmlWeb.Load(url);

            var ogImage     = GetMetaValue(document, "og:image");
            var title       = GetTitle(document);
            var description = GetMetaValue(document, "description");

            var coffeeData = new CoffeeData
            {
                Title       = title,
                Description = description,
                OGImage     = ogImage ?? "",
            };

            var body = UtilityLibrary.Serialize(coffeeData);

            _context?.Logger.LogLine(body);

            var dbContext = new CoffeeContext(_context);

            var id      = GenerateIDFromURL(url);
            var success = await dbContext.AddCoffee(id, title, description, ogImage);

            return(success
        ? new LambdaProxyResponse {
                statusCode = HttpStatusCode.Created
            }
        : new LambdaProxyResponse
            {
                statusCode = HttpStatusCode.InternalServerError
            });
        }