Added amazon folder and changed body of JSON return

This commit is contained in:
emirbarucija
2018-05-17 15:42:40 +02:00
parent f13c7701dc
commit dcb2339404
3 changed files with 104 additions and 1 deletions

View File

@@ -0,0 +1,98 @@
package main
import (
"net/http"
"fmt"
"encoding/json"
"github.com/labstack/echo"
"github.com/labstack/echo/middleware"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
)
type User struct {
Username string
FirstName string
LastName string
}
type Task struct {
Title string
Description string
UserOfTask User
Date string
}
func main() {
lambda.Start(Handler)
}
func Handler() (events.APIGatewayProxyResponse, error) {
e := echo.New()
// Middleware
e.Use(middleware.Logger())
e.Use(middleware.Recover())
// CORS
e.Use(middleware.CORSWithConfig(middleware.CORSConfig{
AllowOrigins: []string{"*"},
AllowMethods: []string{echo.GET, echo.HEAD, echo.PUT, echo.PATCH, echo.POST, echo.DELETE},
}))
// Getting JSON as []byte
b, err := convertTasksToJSON()
if err != nil {
fmt.Println("error:", err)
}
// Route => handler
e.GET("/", func(c echo.Context) error {
return c.String(http.StatusOK, string(b[:]))
})
// Server
e.Start(":1500")
return events.APIGatewayProxyResponse{
Body: string(b[:]),
StatusCode: 200,
}, nil
}
func convertTasksToJSON() ([]byte, error) {
user := User {
Username: "emirbarucija",
FirstName: "Emir",
LastName: "Baručija",
}
task1 := Task {
Title: "First task",
Description: "This is my first task in GO language",
UserOfTask: user,
Date: "10.04.2018.",
}
task2 := Task {
Title: "Second task",
Description: "This is my second task in GO language",
UserOfTask: user,
Date: "14.04.2018.",
}
tasks := []Task{task1, task2}
b, err := json.Marshal(tasks)
return b, err
}
func (u User) String() string {
return fmt.Sprintf("Username: %v\nFirst name: %v\nLast name: %v", u.Username, u.FirstName, u.LastName)
}
func (t Task) String() string {
return fmt.Sprintf("Title: %v\nDescription: %v\nUser: %v\nDate: %v", t.Title, t.Description, t.UserOfTask, t.Date)
}

View File

@@ -0,0 +1,5 @@
build:
go get github.com/aws/aws-lambda-go/lambda
go get github.com/aws/aws-lambda-go/events
env GOOS=linux go build -ldflags="-s -w" -o bin/GO_API GO_API/server.go
zip deployment.zip bin/GO_API

View File

@@ -56,7 +56,7 @@ func Handler() (events.APIGatewayProxyResponse, error) {
e.Start(":1500")
return events.APIGatewayProxyResponse{
Body: b,
Body: string(b[:]),
StatusCode: 200,
}, nil
}