signaller/internal/backend.go

35 lines
950 B
Go
Raw Normal View History

package internal
2019-07-18 14:10:43 +00:00
import (
"github.com/nxshock/signaller/internal/models"
"github.com/nxshock/signaller/internal/models/createroom"
"github.com/nxshock/signaller/internal/models/rooms"
"github.com/nxshock/signaller/internal/models/sync"
)
2019-07-18 14:10:43 +00:00
type Backend interface {
Register(username, password, device string) (user User, token string, err *models.ApiError)
Login(username, password, device string) (token string, err *models.ApiError)
Logout(token string) *models.ApiError
Sync(token string, request sync.SyncRequest) (response *sync.SyncReply, err *models.ApiError)
2019-07-18 14:10:43 +00:00
}
type Room interface {
ID() string
Creator() User
2019-07-22 16:02:53 +00:00
Users() []User
AliasName() string
Name() string
Topic() string
Events() []rooms.Event
}
type User interface {
Name() string
ID() string
Password() string
2019-07-21 11:52:32 +00:00
CreateRoom(request createroom.Request) (Room, *models.ApiError)
2019-07-22 13:58:18 +00:00
LeaveRoom(room Room) *models.ApiError
SetTopic(room Room, topic string) *models.ApiError
}