signaller/internal/backend.go

38 lines
1.0 KiB
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)
2019-07-23 14:37:02 +00:00
GetUserByToken(token string) (user User)
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
SendMessage(room Room, text string) *models.ApiError
2019-07-24 14:31:07 +00:00
Logout(token string)
2019-07-24 14:15:07 +00:00
LogoutAll()
}