verification/internal/initialize/controllers.go
Danil Solovyov 77b57819db Version 0.2
Changes:
  - rename project to remote gitlab
  - changes envs in internal\config\config.go
  - added deployments\staging\docker-compose.yaml
  - added Dockerfile
  - added staging.env
2023-07-03 16:40:20 +05:00

35 lines
916 B
Go

package initialize
import (
"penahub.gitlab.yandexcloud.net/backend/verification/internal/client"
"penahub.gitlab.yandexcloud.net/backend/verification/internal/controllers"
"reflect"
)
type Controller interface {
GetRoutes() []controllers.Route
}
type Controllers struct {
Verification *controllers.VerificationController
}
func (c *Controllers) List() []Controller {
fields := reflect.ValueOf(c).Elem()
var controllersArr []Controller
for i := 0; i < fields.NumField(); i++ {
vf := fields.Field(i)
if vf.Type().Implements(reflect.TypeOf((*Controller)(nil)).Elem()) {
controllersArr = append(controllersArr, vf.Interface().(Controller))
}
}
return controllersArr
}
func NewControllers(reps *Repositories, telegram *client.Telegram, customer *client.Customer) *Controllers {
return &Controllers{Verification: controllers.NewVerificationController(reps.Verification, telegram, customer)}
}