-
Notifications
You must be signed in to change notification settings - Fork 1
/
server.go
58 lines (45 loc) · 1.28 KB
/
server.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package main
import (
"lamapi/handlers"
"log"
"time"
"github.com/go-pg/pg"
"github.com/labstack/echo"
"github.com/labstack/echo/middleware"
)
func main() {
// Initial Database
db := initDB()
db.OnQueryProcessed(func(event *pg.QueryProcessedEvent) {
query, err := event.FormattedQuery()
if err != nil {
panic(err)
}
log.Printf("%s %s", time.Since(event.StartTime), query)
})
createSchema(db)
e := echo.New()
// Middleware
e.Use(middleware.Logger())
e.Use(middleware.Recover())
// CORS default
// Allows requests from any origin wth GET, HEAD, PUT, POST or DELETE method.
e.Use(middleware.CORS())
// CORS restricted
// Allows requests from any `https://labstack.com` or `https://labstack.net` origin
// wth GET, PUT, POST or DELETE method.
// e.Use(middleware.CORSWithConfig(middleware.CORSConfig{
// AllowOrigins: []string{"https://labstack.com", "https://labstack.net"},
// AllowMethods: []string{echo.GET, echo.PUT, echo.POST, echo.DELETE},
// }))
// config := middleware.JWTConfig{
// Claims: &jwtCustomClaims{},
// SigningKey: []byte("secret"),
// }
// Routes
e.GET("/tasks", handlers.GetTasks(db))
e.PUT("/tasks", handlers.PutTask(db))
e.DELETE("/tasks/:id", handlers.DeleteTask(db))
// Start server
e.Logger.Fatal(e.Start(":1323"))
}