add room manager.

This commit is contained in:
m1k1o
2021-03-07 18:18:05 +01:00
parent 22111c8995
commit de44b41075
7 changed files with 94 additions and 6 deletions
+1
View File
@@ -19,6 +19,7 @@ func init() {
configs := []config.Config{
neko_rooms.Service.Configs.Server,
neko_rooms.Service.Configs.API,
neko_rooms.Service.Configs.Room,
}
cobra.OnInitialize(func() {
+12 -2
View File
@@ -6,20 +6,30 @@ import (
"github.com/rs/zerolog/log"
"m1k1o/neko_rooms/internal/config"
"m1k1o/neko_rooms/internal/types"
)
type ApiManagerCtx struct {
logger zerolog.Logger
roomManager types.RoomManager
conf *config.API
}
func New(conf *config.API) *ApiManagerCtx {
func New(roomManager types.RoomManager, conf *config.API) *ApiManagerCtx {
return &ApiManagerCtx{
logger: log.With().Str("module", "router").Logger(),
roomManager: roomManager,
conf: conf,
}
}
func (a *ApiManagerCtx) Mount(r chi.Router) {
func (manager *ApiManagerCtx) Mount(r chi.Router) {
r.Get("/rooms", manager.roomsList)
r.Post("/rooms", manager.roomCreate)
r.Route("/rooms/{roomId}", func(r chi.Router) {
r.Get("/", manager.roomRead)
r.Post("/", manager.roomUpdate)
r.Delete("/", manager.roomDelete)
})
}
+25
View File
@@ -0,0 +1,25 @@
package api
import (
"net/http"
)
func (manager *ApiManagerCtx) roomsList(w http.ResponseWriter, r *http.Request) {
}
func (manager *ApiManagerCtx) roomCreate(w http.ResponseWriter, r *http.Request) {
}
func (manager *ApiManagerCtx) roomRead(w http.ResponseWriter, r *http.Request) {
}
func (manager *ApiManagerCtx) roomUpdate(w http.ResponseWriter, r *http.Request) {
}
func (manager *ApiManagerCtx) roomDelete(w http.ResponseWriter, r *http.Request) {
}
+17
View File
@@ -0,0 +1,17 @@
package config
import (
"github.com/spf13/cobra"
)
type Room struct {
}
func (Room) Init(cmd *cobra.Command) error {
return nil
}
func (s *Room) Set() {
}
+22
View File
@@ -0,0 +1,22 @@
package room
import (
"github.com/rs/zerolog"
"github.com/rs/zerolog/log"
"m1k1o/neko_rooms/internal/config"
)
func New(config *config.Room) *RoomManagerCtx {
logger := log.With().Str("module", "room").Logger()
return &RoomManagerCtx{
logger: logger,
config: config,
}
}
type RoomManagerCtx struct {
logger zerolog.Logger
config *config.Room
}
+4
View File
@@ -0,0 +1,4 @@
package types
type RoomManager interface {
}
+9
View File
@@ -9,6 +9,7 @@ import (
"m1k1o/neko_rooms/internal/api"
"m1k1o/neko_rooms/internal/config"
"m1k1o/neko_rooms/internal/http"
"m1k1o/neko_rooms/internal/room"
"github.com/rs/zerolog"
"github.com/rs/zerolog/log"
@@ -60,6 +61,7 @@ func init() {
Root: &config.Root{},
Server: &config.Server{},
API: &config.API{},
Room: &config.Room{},
},
}
}
@@ -97,6 +99,7 @@ type Configs struct {
Root *config.Root
Server *config.Server
API *config.API
Room *config.Room
}
type MainCtx struct {
@@ -104,6 +107,7 @@ type MainCtx struct {
Configs *Configs
logger zerolog.Logger
roomManager *room.RoomManagerCtx
apiManager *api.ApiManagerCtx
httpManager *http.HttpManagerCtx
}
@@ -113,7 +117,12 @@ func (main *MainCtx) Preflight() {
}
func (main *MainCtx) Start() {
main.roomManager = room.New(
main.Configs.Room,
)
main.apiManager = api.New(
main.roomManager,
main.Configs.API,
)