diff --git a/.vscode/launch.json b/.vscode/launch.json index fddb0d29..6969b05e 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -14,6 +14,20 @@ "mode": "auto", "program": "${workspaceFolder}/cmd/bpjs-api" }, + { + "name": "Launch Package simgos sync API", + "type": "go", + "request": "launch", + "mode": "auto", + "program": "${workspaceFolder}/cmd/simgos-sync-api" + }, + { + "name": "Launch Package main sync API", + "type": "go", + "request": "launch", + "mode": "auto", + "program": "${workspaceFolder}/cmd/main-sync-api" + }, { "name": "Launch Package migratioon", "type": "go", diff --git a/cmd/main-sync-api/config.yml-example b/cmd/main-sync-api/config.yml-example new file mode 100644 index 00000000..edb5c84b --- /dev/null +++ b/cmd/main-sync-api/config.yml-example @@ -0,0 +1,41 @@ +appCfg: + fullName: SIMRS Sync + codeName: simrs-sync + version: 0.1.0 + env: development + lang: en + +dbCfg: + dsn: + maxOpenConns: 5 + maxIdleConns: 5 + maxIdleTime: 100 + +multiDbCfg: + dbs : + - name: simrs_sync + dsn: + maxOpenConns: 5 + maxIdleConns: 5 + maxIdleTime: 100 + +httpCfg: + host: 127.0.0.1 + port: 8003 + +loggerCfg: + hideTime: true + hideLevel: true + +langCfg: + active: en + path: ../../assets/language/en + fileName: data.json + +corsCfg: + allowedOrigin: + allowedMethod: GET, POST, PUT, PATCH, DELETE, OPTIONS + +syncUrlCfg: + target: + host: \ No newline at end of file diff --git a/cmd/main-sync-api/main.go b/cmd/main-sync-api/main.go new file mode 100644 index 00000000..5bfdd36b --- /dev/null +++ b/cmd/main-sync-api/main.go @@ -0,0 +1,15 @@ +package main + +import ( + a "github.com/karincake/apem" + + h "simrs-vx/internal/interface/main-sync-handler" + + d "github.com/karincake/apem/db-gorm-pg" + + l "github.com/karincake/apem/logger-zerolog" +) + +func main() { + a.Run(h.SetRoutes(), &l.O, &d.O) +} diff --git a/cmd/simgos-sync-api/config.yml-example b/cmd/simgos-sync-api/config.yml-example new file mode 100644 index 00000000..153be50e --- /dev/null +++ b/cmd/simgos-sync-api/config.yml-example @@ -0,0 +1,41 @@ +appCfg: + fullName: SIMRS Sync + codeName: simrs-sync + version: 0.1.0 + env: development + lang: en + +dbCfg: + dsn: + maxOpenConns: 5 + maxIdleConns: 5 + maxIdleTime: 100 + +multiDbCfg: + dbs : + - name: simrs_sync + dsn: + maxOpenConns: 5 + maxIdleConns: 5 + maxIdleTime: 100 + +httpCfg: + host: 127.0.0.1 + port: 8002 + +loggerCfg: + hideTime: true + hideLevel: true + +langCfg: + active: en + path: ../../assets/language/en + fileName: data.json + +corsCfg: + allowedOrigin: + allowedMethod: GET, POST, PUT, PATCH, DELETE, OPTIONS + +syncUrlCfg: + target: + host: \ No newline at end of file diff --git a/cmd/simgos-sync-api/main.go b/cmd/simgos-sync-api/main.go new file mode 100644 index 00000000..ddb3897d --- /dev/null +++ b/cmd/simgos-sync-api/main.go @@ -0,0 +1,15 @@ +package main + +import ( + a "github.com/karincake/apem" + + h "simrs-vx/internal/interface/simgos-sync-handler" + + d "github.com/karincake/apem/db-gorm-pg" + + l "github.com/karincake/apem/logger-zerolog" +) + +func main() { + a.Run(h.SetRoutes(), &l.O, &d.O) +} diff --git a/internal/domain/simgos-sync-entities/.keep b/internal/domain/simgos-sync-entities/.keep new file mode 100644 index 00000000..e69de29b diff --git a/internal/infra/sync-cfg/sync-cfg.go b/internal/infra/sync-cfg/sync-cfg.go new file mode 100644 index 00000000..0368a7c4 --- /dev/null +++ b/internal/infra/sync-cfg/sync-cfg.go @@ -0,0 +1,14 @@ +package synccfg + +import ( + a "github.com/karincake/apem" + lo "github.com/karincake/apem/loggero" +) + +func SetConfig() { + a.ParseSingleCfg(&O) + if O.Host == "" || O.Target == "" { + panic("sync url config host or target empty") + } + lo.I.Println("sync url config loaded, status: DONE!!") +} diff --git a/internal/infra/sync-cfg/tycovar.go b/internal/infra/sync-cfg/tycovar.go new file mode 100644 index 00000000..9bb59f3d --- /dev/null +++ b/internal/infra/sync-cfg/tycovar.go @@ -0,0 +1,8 @@ +package synccfg + +var O SyncUrlCfg = SyncUrlCfg{} + +type SyncUrlCfg struct { + Target string `yaml:"target"` + Host string `yaml:"host"` +} diff --git a/internal/interface/main-sync-handler/main-sync-handler.go b/internal/interface/main-sync-handler/main-sync-handler.go new file mode 100644 index 00000000..c8ba5144 --- /dev/null +++ b/internal/interface/main-sync-handler/main-sync-handler.go @@ -0,0 +1,36 @@ +package mainsynchandler + +import ( + "net/http" + + /******************** infra ********************/ + gs "simrs-vx/internal/infra/gorm-setting" + synccfg "simrs-vx/internal/infra/sync-cfg" + + /******************** pkg ********************/ + cmw "simrs-vx/pkg/cors-manager-mw" + lh "simrs-vx/pkg/lang-helper" + handlerlogger "simrs-vx/pkg/middleware/handler-logger" + zlc "simrs-vx/pkg/zerolog-ctx" + + /******************** external ********************/ + a "github.com/karincake/apem" + + /******************** internal ********************/ + "simrs-vx/internal/interface/main-handler/home" +) + +func SetRoutes() http.Handler { + /// + a.RegisterExtCall(gs.Adjust) + a.RegisterExtCall(zlc.Adjust) + a.RegisterExtCall(lh.Populate) + a.RegisterExtCall(synccfg.SetConfig) + + r := http.NewServeMux() + + /******************** Main ********************/ + r.HandleFunc("/", home.Home) + + return cmw.SetCors(handlerlogger.SetLog(r)) +} diff --git a/internal/interface/simgos-sync-handler/simgos-sync-handler.go b/internal/interface/simgos-sync-handler/simgos-sync-handler.go new file mode 100644 index 00000000..f51106a9 --- /dev/null +++ b/internal/interface/simgos-sync-handler/simgos-sync-handler.go @@ -0,0 +1,36 @@ +package simgossynchandler + +import ( + "net/http" + + /******************** infra ********************/ + gs "simrs-vx/internal/infra/gorm-setting" + synccfg "simrs-vx/internal/infra/sync-cfg" + + /******************** pkg ********************/ + cmw "simrs-vx/pkg/cors-manager-mw" + lh "simrs-vx/pkg/lang-helper" + handlerlogger "simrs-vx/pkg/middleware/handler-logger" + zlc "simrs-vx/pkg/zerolog-ctx" + + /******************** external ********************/ + a "github.com/karincake/apem" + + /******************** internal ********************/ + "simrs-vx/internal/interface/main-handler/home" +) + +func SetRoutes() http.Handler { + /// + a.RegisterExtCall(gs.Adjust) + a.RegisterExtCall(zlc.Adjust) + a.RegisterExtCall(lh.Populate) + a.RegisterExtCall(synccfg.SetConfig) + + r := http.NewServeMux() + + /******************** Main ********************/ + r.HandleFunc("/", home.Home) + + return cmw.SetCors(handlerlogger.SetLog(r)) +} diff --git a/internal/use-case/main-sync-case/.keep b/internal/use-case/main-sync-case/.keep new file mode 100644 index 00000000..e69de29b diff --git a/internal/use-case/simgos-sync-case/.keep b/internal/use-case/simgos-sync-case/.keep new file mode 100644 index 00000000..e69de29b