mirror of
https://github.com/m1k1o/neko-rooms.git
synced 2026-11-02 22:51:34 -06:00
add room manager.
This commit is contained in:
@@ -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
@@ -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)
|
||||
})
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
}
|
||||
@@ -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() {
|
||||
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package types
|
||||
|
||||
type RoomManager interface {
|
||||
}
|
||||
@@ -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,
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user