mirror of
https://github.com/m1k1o/neko-rooms.git
synced 2026-11-03 07:01:35 -06:00
split RoomEntry.
This commit is contained in:
@@ -27,14 +27,16 @@ func (manager *ApiManagerCtx) roomCreate(w http.ResponseWriter, r *http.Request)
|
||||
return
|
||||
}
|
||||
|
||||
response, err := manager.rooms.Create(request)
|
||||
ID, err := manager.rooms.Create(request)
|
||||
if err != nil {
|
||||
http.Error(w, err.Error(), 500)
|
||||
return
|
||||
}
|
||||
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
json.NewEncoder(w).Encode(response)
|
||||
json.NewEncoder(w).Encode(struct{
|
||||
ID string `json:"id"`
|
||||
}{ID})
|
||||
}
|
||||
|
||||
func (manager *ApiManagerCtx) roomGet(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
+11
-17
@@ -48,35 +48,35 @@ type RoomManagerCtx struct {
|
||||
client *dockerClient.Client
|
||||
}
|
||||
|
||||
func (manager *RoomManagerCtx) List() ([]types.RoomData, error) {
|
||||
func (manager *RoomManagerCtx) List() ([]types.RoomEntry, error) {
|
||||
containers, err := manager.listContainers()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
result := []types.RoomData{}
|
||||
result := []types.RoomEntry{}
|
||||
for _, container := range containers {
|
||||
result = append(result, types.RoomData{
|
||||
result = append(result, types.RoomEntry{
|
||||
ID: container.ID,
|
||||
})
|
||||
}
|
||||
|
||||
return result, nil
|
||||
}
|
||||
func (manager *RoomManagerCtx) Create(settings types.RoomSettings) (*types.RoomData, error) {
|
||||
func (manager *RoomManagerCtx) Create(settings types.RoomSettings) (string, error) {
|
||||
// TODO: Check if path name exists.
|
||||
pathName := settings.Name
|
||||
if pathName == "" {
|
||||
var err error
|
||||
pathName, err = utils.NewUID(32)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return "", err
|
||||
}
|
||||
}
|
||||
|
||||
epr, err := manager.allocatePorts(settings.MaxConnections)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return "", err
|
||||
}
|
||||
|
||||
portBindings := nat.PortMap{}
|
||||
@@ -176,32 +176,26 @@ func (manager *RoomManagerCtx) Create(settings types.RoomSettings) (*types.RoomD
|
||||
)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return "", err
|
||||
}
|
||||
|
||||
// Run the actual container
|
||||
err = manager.client.ContainerStart(context.Background(), cont.ID, dockerTypes.ContainerStartOptions{})
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return "", err
|
||||
}
|
||||
|
||||
return &types.RoomData{
|
||||
ID: cont.ID,
|
||||
RoomSettings: settings,
|
||||
}, nil
|
||||
return cont.ID, nil
|
||||
}
|
||||
|
||||
func (manager *RoomManagerCtx) Get(id string) (*types.RoomData, error) {
|
||||
func (manager *RoomManagerCtx) Get(id string) (*types.RoomSettings, error) {
|
||||
_, err := manager.inspectContainer(id)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &types.RoomData{
|
||||
ID: id,
|
||||
RoomSettings: types.RoomSettings{},
|
||||
}, nil
|
||||
return &types.RoomSettings{}, nil
|
||||
}
|
||||
|
||||
func (manager *RoomManagerCtx) Update(id string, settings types.RoomSettings) error {
|
||||
|
||||
@@ -66,16 +66,14 @@ func (settings *RoomSettings) Env(eprMin uint16, eprMax uint16, nat1to1 []string
|
||||
return env
|
||||
}
|
||||
|
||||
type RoomData struct {
|
||||
type RoomEntry struct {
|
||||
ID string `json:"id"`
|
||||
|
||||
RoomSettings
|
||||
}
|
||||
|
||||
type RoomManager interface {
|
||||
List() ([]RoomData, error)
|
||||
Create(settings RoomSettings) (*RoomData, error)
|
||||
Get(id string) (*RoomData, error)
|
||||
List() ([]RoomEntry, error)
|
||||
Create(settings RoomSettings) (string, error)
|
||||
Get(id string) (*RoomSettings, error)
|
||||
Update(id string, settings RoomSettings) error
|
||||
Remove(id string) error
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user