mirror of
https://github.com/GrassrootsEconomics/cic-dw.git
synced 2026-05-20 04:41:09 +02:00
feat: add admin/auth api (#22)
* feat: add admin/auth api - jwt cookie based auth - /auth - admin/* * add: meta proxy * fix: remove ussd account status from syncer * add: cookie defaults and nuxt init check route * add: pin and address handlers
This commit is contained in:
18
cmd/init.go
18
cmd/init.go
@@ -6,6 +6,7 @@ import (
|
||||
"strings"
|
||||
|
||||
batch_balance "github.com/grassrootseconomics/cic-go/batch_balance"
|
||||
"github.com/grassrootseconomics/cic-go/meta"
|
||||
cic_net "github.com/grassrootseconomics/cic-go/net"
|
||||
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
@@ -40,12 +41,19 @@ type config struct {
|
||||
Enabled bool `koan:"enabled"`
|
||||
}
|
||||
Syncers map[string]string `koanf:"syncers"`
|
||||
Meta struct {
|
||||
Endpoint string `koanf:"meta"`
|
||||
}
|
||||
Jwt struct {
|
||||
Secret string `koanf:"secret"`
|
||||
}
|
||||
}
|
||||
|
||||
type queries struct {
|
||||
core goyesql.Queries
|
||||
dashboard goyesql.Queries
|
||||
public goyesql.Queries
|
||||
admin goyesql.Queries
|
||||
}
|
||||
|
||||
func loadConfig(configFilePath string, k *koanf.Koanf) error {
|
||||
@@ -110,6 +118,10 @@ func loadCicNet(tokenIndex common.Address) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func loadCicMeta(metaEndpoint string) {
|
||||
metaClient = meta.NewCicMeta(metaEndpoint)
|
||||
}
|
||||
|
||||
func loadBatchBalance(balanceResolver common.Address) error {
|
||||
var err error
|
||||
|
||||
@@ -137,10 +149,16 @@ func loadQueries(sqlFilesPath string) error {
|
||||
return err
|
||||
}
|
||||
|
||||
adminQueries, err := goyesql.ParseFile(fmt.Sprintf("%s/admin.sql", sqlFilesPath))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
preparedQueries = &queries{
|
||||
core: coreQueries,
|
||||
dashboard: dashboardQueries,
|
||||
public: publicQueries,
|
||||
admin: adminQueries,
|
||||
}
|
||||
|
||||
return nil
|
||||
|
||||
@@ -8,6 +8,7 @@ import (
|
||||
"time"
|
||||
|
||||
batch_balance "github.com/grassrootseconomics/cic-go/batch_balance"
|
||||
"github.com/grassrootseconomics/cic-go/meta"
|
||||
cic_net "github.com/grassrootseconomics/cic-go/net"
|
||||
"github.com/grassrootseconomics/cic-go/provider"
|
||||
"github.com/hibiken/asynq"
|
||||
@@ -28,6 +29,7 @@ var (
|
||||
rpcProvider *provider.Provider
|
||||
cicnetClient *cic_net.CicNet
|
||||
batchBalance *batch_balance.BatchBalance
|
||||
metaClient *meta.CicMeta
|
||||
rClient asynq.RedisConnOpt
|
||||
)
|
||||
|
||||
@@ -59,9 +61,10 @@ func init() {
|
||||
}
|
||||
|
||||
if err := parseRedis(conf.Db.Redis); err != nil {
|
||||
|
||||
log.Fatal().Err(err).Msg("could not parse redis connection string")
|
||||
}
|
||||
|
||||
loadCicMeta(conf.Meta.Endpoint)
|
||||
}
|
||||
|
||||
func main() {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"cic-dw/internal/admin"
|
||||
"cic-dw/internal/dashboard"
|
||||
"cic-dw/internal/public"
|
||||
|
||||
@@ -21,6 +22,7 @@ func initHTTPServer() *echo.Echo {
|
||||
|
||||
dashboard.InitDashboardApi(server, db, preparedQueries.dashboard)
|
||||
public.InitPublicApi(server, db, batchBalance, cicnetClient, preparedQueries.public)
|
||||
admin.InitAdminApi(server, db, preparedQueries.admin, metaClient, conf.Jwt.Secret)
|
||||
|
||||
return server
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user