69 lines
1.5 KiB
Go
69 lines
1.5 KiB
Go
package app
|
|
|
|
import (
|
|
"time"
|
|
|
|
db "git.ego.freeddns.org/egommerce/go-api-pkg/database"
|
|
redis "github.com/go-redis/redis/v8"
|
|
)
|
|
|
|
type (
|
|
Plugin struct {
|
|
name string
|
|
fn PluginFn
|
|
}
|
|
PluginFn func() any
|
|
)
|
|
|
|
func CachePlugin(cArr map[string]string) Plugin {
|
|
// fmt.Println(cArr["cacheAddr"], cArr["cacheUsername"], cArr["cachePassword"])
|
|
return Plugin{
|
|
name: "cache",
|
|
fn: func() any { // FIXME: return type
|
|
return redis.NewClient(&redis.Options{
|
|
Addr: cArr["cacheAddr"],
|
|
Username: cArr["cacheUsername"],
|
|
Password: cArr["cachePassword"],
|
|
DB: 0,
|
|
DialTimeout: 100 * time.Millisecond,
|
|
})
|
|
},
|
|
}
|
|
}
|
|
|
|
func DatabasePlugin(cArr map[string]string) Plugin {
|
|
return Plugin{
|
|
name: "database",
|
|
fn: func() any { // FIXME: return type
|
|
dbConn, _ := db.Connect(cArr["dbURL"])
|
|
// if err != nil {
|
|
// log.Fatalf("Failed to connect to the Database: %s. Err: %v\n", cArr["dbURL"], err)
|
|
// os.Exit(1)
|
|
// }
|
|
|
|
return dbConn
|
|
},
|
|
}
|
|
}
|
|
|
|
// func EventbusPlugin(cArr map[string]string) Plugin {
|
|
// return Plugin{
|
|
// name: "eventbus",
|
|
// fn: func() any { // FIXME: return type
|
|
// conn, err := amqp.Dial(cArr["eventBusURL"])
|
|
// if err != nil {
|
|
// log.Fatalf("Failed to connect to the EventBus: %s. Err: %v\n", cArr["eventBusURL"], err)
|
|
// os.Exit(1) // TODO: retry in background...
|
|
// }
|
|
|
|
// chn, err := conn.Channel()
|
|
// if err != nil {
|
|
// log.Fatalf("Failed to open new EventBus channel. Err: %v\n", err)
|
|
// os.Exit(1) // TODO: retry in background...
|
|
// }
|
|
|
|
// return chn
|
|
// },
|
|
// }
|
|
// }
|