diff --git a/backend/GO_API/server.go b/backend/GO_API/server.go deleted file mode 100644 index efef637..0000000 --- a/backend/GO_API/server.go +++ /dev/null @@ -1,87 +0,0 @@ -package main - -import ( - "net/http" - "fmt" - "encoding/json" - - "github.com/labstack/echo" - "github.com/labstack/echo/middleware" -) - -type User struct { - Username string - FirstName string - LastName string -} - -type Task struct { - Title string - Description string - UserOfTask User - Date string -} - -func main() { - 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 := Handler() - 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") -} - -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) -} - -func Handler() ([]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 -} \ No newline at end of file diff --git a/backend/serverless/GO_API_service/GO_API/server.go b/backend/serverless/GO_API_service/GO_API/server.go index efef637..836992c 100644 --- a/backend/serverless/GO_API_service/GO_API/server.go +++ b/backend/serverless/GO_API_service/GO_API/server.go @@ -7,6 +7,8 @@ import ( "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 { @@ -23,6 +25,10 @@ type Task struct { } func main() { + lambda.Start(Handler) +} + +func Handler() (events.APIGatewayProxyResponse, error) { e := echo.New() // Middleware @@ -36,7 +42,7 @@ func main() { })) // Getting JSON as []byte - b, err := Handler() + b, err := convertTasksToJSON() if err != nil { fmt.Println("error:", err) } @@ -48,17 +54,14 @@ func main() { // Server e.Start(":1500") + + return events.APIGatewayProxyResponse{ + Body: b, + StatusCode: 200, + }, nil } -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) -} - -func Handler() ([]byte, error) { +func convertTasksToJSON() ([]byte, error) { user := User { Username: "emirbarucija", FirstName: "Emir", @@ -84,4 +87,12 @@ func Handler() ([]byte, error) { 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) } \ No newline at end of file diff --git a/backend/serverless/GO_API_service/Makefile b/backend/serverless/GO_API_service/Makefile index e5908dc..01c32ea 100644 --- a/backend/serverless/GO_API_service/Makefile +++ b/backend/serverless/GO_API_service/Makefile @@ -1,3 +1,5 @@ build: go get github.com/aws/aws-lambda-go/lambda - env GOOS=windows go build -ldflags="-s -w" -o bin/GO_API GO_API/server.go \ No newline at end of file + 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 \ No newline at end of file