-
Notifications
You must be signed in to change notification settings - Fork 0
/
router.go
94 lines (82 loc) · 2.45 KB
/
router.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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
package app
import (
"time"
"github.com/comhttp/enso/app/routes"
"github.com/comhttp/enso/pkg/utl"
"github.com/comhttp/jorm/mod/coin"
"github.com/comhttp/jorm/pkg/jdb"
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/cache"
"github.com/gofiber/fiber/v2/middleware/compress"
"github.com/gofiber/fiber/v2/middleware/cors"
"github.com/gofiber/fiber/v2/middleware/csrf"
"github.com/gofiber/fiber/v2/middleware/etag"
"github.com/gofiber/fiber/v2/middleware/favicon"
"github.com/gofiber/fiber/v2/middleware/recover"
"github.com/gofiber/utils"
)
func (e *ENSO) ENSOrouter() {
e.Router = fiber.New(fiber.Config{
// Prefork: true,
CaseSensitive: true,
StrictRouting: true,
ServerHeader: "OKNO",
AppName: "ENSO",
})
e.Router.Use(recover.New())
e.Router.Use(cors.New(cors.Config{
AllowOrigins: "*",
AllowHeaders: "Origin, Content-Type, Accept",
}))
e.Router.Use(cache.New(cache.Config{
Next: func(c *fiber.Ctx) bool {
return c.Query("refresh") == "true"
},
Expiration: 30 * time.Minute,
CacheControl: true,
}))
e.Router.Use(compress.New(compress.Config{
Level: compress.LevelBestSpeed, // 1
}))
e.Router.Use(csrf.New(csrf.Config{
KeyLookup: "header:X-Csrf-Token",
CookieName: "csrf_",
CookieSameSite: "Strict",
Expiration: 1 * time.Hour,
KeyGenerator: utils.UUID,
}))
e.Router.Use(etag.New())
e.Router.Use(favicon.New(favicon.Config{
File: "",
}))
// bitnodes := e.okno.GetAll("nodes", "bitnode=true&")
// for _, bitnode := range bitnodes {
// if bitnode["coin"].(map[string]interface{})["slug"] == coin {
// e.BitNodes = append(e.BitNodes, nodes.BitNode{
// IP: bitnode["ip"].(string),
// Port: int64(bitnode["port"].(float64)),
// })
// }
// }
coins, err := jdb.NewJDB(e.jdbServers["jdbcoins"])
cq := coin.Queries(coins, "")
if err != nil {
utl.ErrorLog(err)
} else {
cq.WriteInfo("nodecoins", &coin.Coins{
N: len(e.BitNoded),
C: e.BitNoded,
})
}
routes.CoinsRoutes(cq, e.okno, e.APIs, e.getJORMcommands(), e.ExJDBs, e.Router)
// routes.Explorer(e.okno, e.APIs, e.getJORMcommands(), e.ExJDBs, e.Router)
//s := r.Host("enso.okno.rs").Subrouter()
// r.StrictSlash(true)
// return handlers.CORS()(handlers.CompressHandler(utl.InterceptHandler(r, utl.DefaultErrorHandler)))
// log.Fatal().Err(e.Router.Listen(":3000"))
// log.Fatal(e.Router.Listen(":3000"))
// 404 Handler
e.Router.Use(func(c *fiber.Ctx) error {
return c.SendStatus(404)
})
}