mirror of
https://github.com/cf-sonr/motr.git
synced 2026-01-12 02:59:13 +00:00
Implement Database Migrations (#12)
* feat: enhance modularity by relocating core packages * refactor: move chart components to dashboard package * refactor: restructure database access layer * refactor: rename credential descriptor to credentials for clarity * feat: enhance development environment configuration for database interactions * feat: integrate go-task for database migrations * feat: introduce middleware for market data and WebAuthn
This commit is contained in:
@@ -4,19 +4,63 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"net/http"
|
||||
|
||||
"github.com/labstack/echo/v4"
|
||||
"github.com/sonr-io/motr/pkg/database"
|
||||
"github.com/sonr-io/motr/pkg/session"
|
||||
"github.com/sonr-io/motr/middleware/database"
|
||||
"github.com/sonr-io/motr/middleware/marketapi"
|
||||
"github.com/sonr-io/motr/middleware/session"
|
||||
"github.com/sonr-io/motr/routes"
|
||||
"github.com/syumai/workers"
|
||||
"github.com/syumai/workers/cloudflare/cron"
|
||||
|
||||
_ "github.com/syumai/workers/cloudflare/d1"
|
||||
)
|
||||
|
||||
func main() {
|
||||
e := echo.New()
|
||||
e.Use(session.Middleware(), database.Middleware())
|
||||
// ╭──────────────────────────────────────────────────╮
|
||||
// │ Initialization │
|
||||
// ╰──────────────────────────────────────────────────╯
|
||||
|
||||
// Setup the HTTP handler
|
||||
func loadHandler() http.Handler {
|
||||
e := echo.New()
|
||||
e.Use(session.Middleware(), database.Middleware(), marketapi.Middleware())
|
||||
routes.SetupViews(e)
|
||||
routes.SetupPartials(e)
|
||||
workers.Serve(e)
|
||||
return e
|
||||
}
|
||||
|
||||
// Setup the cron task
|
||||
func loadTask() cron.Task {
|
||||
return func(ctx context.Context) error {
|
||||
e, err := cron.NewEvent(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
fmt.Println(e.ScheduledTime.Unix())
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
// ╭─────────────────────────────────────────────────╮
|
||||
// │ Main Function │
|
||||
// ╰─────────────────────────────────────────────────╯
|
||||
|
||||
func main() {
|
||||
// Setup CRON jobs
|
||||
e := loadHandler()
|
||||
t := loadTask()
|
||||
|
||||
// Configure Worker
|
||||
workers.ServeNonBlock(e)
|
||||
cron.ScheduleTaskNonBlock(t)
|
||||
workers.Ready()
|
||||
|
||||
// Block until handler/task is done
|
||||
select {
|
||||
case <-workers.Done():
|
||||
case <-cron.Done():
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,17 +16,31 @@ port = 4242
|
||||
[observability]
|
||||
enabled = true
|
||||
|
||||
[triggers]
|
||||
crons = ["0 */1 * * *"]
|
||||
|
||||
|
||||
[[d1_databases]]
|
||||
binding = "DB" # available in your Worker on env.DB
|
||||
database_name = "motr-controller-db"
|
||||
database_id = "872a4b08-7e07-4978-b227-5b60940238ed"
|
||||
binding = "ACTIVITY_DB"
|
||||
database_name = "motr-activity"
|
||||
database_id = "a7ccb4bb-c529-4f42-8029-92564a3aecb8"
|
||||
|
||||
[[d1_databases]]
|
||||
binding = "NETWORK_DB"
|
||||
database_name = "motr-network"
|
||||
database_id = "acb75499-3502-4052-9604-263a913e077a"
|
||||
|
||||
[[d1_databases]]
|
||||
binding = "USERS_DB"
|
||||
database_name = "motr-users"
|
||||
database_id = "8ed4d399-5932-419c-b92f-9c20d7a36ad2"
|
||||
|
||||
[[kv_namespaces]]
|
||||
binding = "SESSIONS" # available in your Worker on env.KV
|
||||
binding = "SESSIONS_KV"
|
||||
id = "ea5de66fcfc14b5eba170395e29432ee"
|
||||
|
||||
[[kv_namespaces]]
|
||||
binding = "HANDLES" # available in your Worker on env.KV
|
||||
binding = "HANDLES_KV"
|
||||
id = "271d47087a8842b2aac5ee79cf7bb203"
|
||||
|
||||
[[r2_buckets]]
|
||||
|
||||
@@ -4,20 +4,64 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"net/http"
|
||||
|
||||
"github.com/labstack/echo/v4"
|
||||
"github.com/sonr-io/motr/pkg/database"
|
||||
"github.com/sonr-io/motr/pkg/session"
|
||||
"github.com/sonr-io/motr/middleware/database"
|
||||
"github.com/sonr-io/motr/middleware/session"
|
||||
"github.com/sonr-io/motr/middleware/sonrapi"
|
||||
"github.com/sonr-io/motr/middleware/webauthn"
|
||||
"github.com/sonr-io/motr/routes"
|
||||
"github.com/syumai/workers"
|
||||
"github.com/syumai/workers/cloudflare/cron"
|
||||
|
||||
_ "github.com/syumai/workers/cloudflare/d1"
|
||||
)
|
||||
|
||||
func main() {
|
||||
e := echo.New()
|
||||
e.Use(session.Middleware(), database.Middleware())
|
||||
// ╭──────────────────────────────────────────────────╮
|
||||
// │ Initialization │
|
||||
// ╰──────────────────────────────────────────────────╯
|
||||
|
||||
// Setup the HTTP handler
|
||||
func loadHandler() http.Handler {
|
||||
e := echo.New()
|
||||
e.Use(session.Middleware(), database.Middleware(), sonrapi.Middleware(), webauthn.Middleware())
|
||||
routes.SetupViews(e)
|
||||
routes.SetupPartials(e)
|
||||
|
||||
workers.Serve(e)
|
||||
return e
|
||||
}
|
||||
|
||||
// Setup the cron task
|
||||
func loadTask() cron.Task {
|
||||
return func(ctx context.Context) error {
|
||||
e, err := cron.NewEvent(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
fmt.Println(e.ScheduledTime.Unix())
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
// ╭─────────────────────────────────────────────────╮
|
||||
// │ Main Function │
|
||||
// ╰─────────────────────────────────────────────────╯
|
||||
|
||||
func main() {
|
||||
// Setup CRON jobs
|
||||
e := loadHandler()
|
||||
t := loadTask()
|
||||
|
||||
// Configure Worker
|
||||
workers.ServeNonBlock(e)
|
||||
cron.ScheduleTaskNonBlock(t)
|
||||
workers.Ready()
|
||||
|
||||
// Block until handler/task is done
|
||||
select {
|
||||
case <-workers.Done():
|
||||
case <-cron.Done():
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,17 +16,30 @@ port = 6969
|
||||
[observability]
|
||||
enabled = true
|
||||
|
||||
[triggers]
|
||||
crons = ["0 */1 * * *"]
|
||||
|
||||
[[d1_databases]]
|
||||
binding = "DB" # available in your Worker on env.DB
|
||||
database_name = "motr-controller-db"
|
||||
database_id = "872a4b08-7e07-4978-b227-5b60940238ed"
|
||||
binding = "ACTIVITY_DB"
|
||||
database_name = "motr-activity"
|
||||
database_id = "a7ccb4bb-c529-4f42-8029-92564a3aecb8"
|
||||
|
||||
[[d1_databases]]
|
||||
binding = "NETWORK_DB"
|
||||
database_name = "motr-network"
|
||||
database_id = "acb75499-3502-4052-9604-263a913e077a"
|
||||
|
||||
[[d1_databases]]
|
||||
binding = "USERS_DB"
|
||||
database_name = "motr-users"
|
||||
database_id = "8ed4d399-5932-419c-b92f-9c20d7a36ad2"
|
||||
|
||||
[[kv_namespaces]]
|
||||
binding = "SESSIONS" # available in your Worker on env.KV
|
||||
binding = "SESSIONS_KV"
|
||||
id = "ea5de66fcfc14b5eba170395e29432ee"
|
||||
|
||||
[[kv_namespaces]]
|
||||
binding = "HANDLES" # available in your Worker on env.KV
|
||||
binding = "HANDLES_KV"
|
||||
id = "271d47087a8842b2aac5ee79cf7bb203"
|
||||
|
||||
[[r2_buckets]]
|
||||
|
||||
Reference in New Issue
Block a user