room

package
v0.0.0-...-f6f569b Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 10, 2024 License: GPL-3.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddMember

func AddMember(ctx context.Context, dbtx db.DBTX, roomID string, userID string) error

func AddMemberByUsername

func AddMemberByUsername(ctx context.Context, dbtx db.DBTX, roomID string, username string, isModerator bool) error

func DeleteByCode

func DeleteByCode(ctx context.Context, dbtx db.DBTX, roomCode string) error

func GetEncryptedRoomTokens

func GetEncryptedRoomTokens(ctx context.Context, dbtx db.DBTX, code string) (accessToken []byte, accessTokenExpiry time.Time, refreshToken []byte, err error)

func GetGuestName

func GetGuestName(ctx context.Context, dbtx db.DBTX, roomID string, guestID string) (string, error)

func GetHostID

func GetHostID(ctx context.Context, dbtx db.DBTX, code string) (string, error)

func MarkTracksAsPlayedSince

func MarkTracksAsPlayedSince(ctx context.Context, dbtx db.DBTX, roomID string, since time.Time) error

func ParametersFromRequest

func ParametersFromRequest(r *http.Request) (code string, guest_id string, password string)

ParametersFromRequest returns the room code from the URL parameter and the guest name / room password from the Basic auth header

func RemoveMember

func RemoveMember(ctx context.Context, dbtx db.DBTX, roomID string, userID string) error

func SetIsOpen

func SetIsOpen(ctx context.Context, dbtx db.DBTX, roomID string, isOpen bool) error

func SetModerator

func SetModerator(ctx context.Context, dbtx db.DBTX, roomID string, userID string, isModerator bool) error

func SetQueueTrackGuest

func SetQueueTrackGuest(ctx context.Context, dbtx db.DBTX, roomCode string, trackID string, guestID string) error

func SetQueueTrackUser

func SetQueueTrackUser(ctx context.Context, dbtx db.DBTX, roomCode string, trackID string, userID string) error

func UpdatePassword

func UpdatePassword(ctx context.Context, dbtx db.DBTX, roomID string, newPassword string) error

func UpdateSpotifyToken

func UpdateSpotifyToken(ctx context.Context, dbtx db.DBTX, code string, oauthToken *oauth2.Token) error

func UserIsMember

func UserIsMember(ctx context.Context, dbtx db.DBTX, roomID string, userID string) (bool, error)

func ValidatePassword

func ValidatePassword(ctx context.Context, dbtx db.DBTX, code string, password string) (bool, error)

Types

type Guest

type Guest struct {
	ID           string `json:"id"`
	Name         string `json:"name"`
	QueuedTracks int    `json:"queued_tracks"`
}

func GetAllRoomGuests

func GetAllRoomGuests(ctx context.Context, dbtx db.DBTX, roomID string) ([]Guest, error)

func InsertGuest

func InsertGuest(ctx context.Context, dbtx db.DBTX, roomCode string, name string) (*Guest, error)

func InsertGuestWithID

func InsertGuestWithID(ctx context.Context, dbtx db.DBTX, roomCode string, name string, guestID string) (*Guest, error)

type InsertGuestRequest

type InsertGuestRequest struct {
	Name string
}

type InsertRoomParams

type InsertRoomParams struct {
	Name     string `json:"name"`
	Password string `json:"password"`
	HostID   string `json:"host_id"`
}

type Member

type Member struct {
	ID           string `json:"user_id"`
	Username     string `json:"username"`
	DisplayName  string `json:"display_name"`
	SpotifyName  string `json:"spotify_name"`
	SpotifyImage string `json:"spotify_image"`
	IsModerator  bool   `json:"is_moderator"`
	QueuedTracks int    `json:"queued_tracks"`
}

func GetAllMembers

func GetAllMembers(ctx context.Context, dbtx db.DBTX, roomID string) ([]Member, error)

type QueuedTrack

type QueuedTrack struct {
	TrackID   string
	AddedBy   string
	Timestamp time.Time
	Played    bool
}

func GetQueueTrackAddedBy

func GetQueueTrackAddedBy(ctx context.Context, dbtx db.DBTX, roomID string) (tracks []QueuedTrack, err error)

type Room

type Room struct {
	ID      string    `json:"id"`
	Code    string    `json:"code"`
	Name    string    `json:"name"`
	Host    user.User `json:"host"`
	Created time.Time `json:"created"`
}

func GetByCode

func GetByCode(ctx context.Context, dbtx db.DBTX, code string) (Room, error)

func GetUserHostedRooms

func GetUserHostedRooms(ctx context.Context, dbtx db.DBTX, userID string, isOpen bool) ([]Room, error)

func GetUserJoinedRooms

func GetUserJoinedRooms(ctx context.Context, dbtx db.DBTX, userID string, isOpen bool) ([]Room, error)

func Insert

func Insert(ctx context.Context, dbtx db.DBTX, insertParams InsertRoomParams) (Room, error)

type RoomResponse

type RoomResponse struct {
	Room  Room   `json:"room"`
	Guest *Guest `json:"guest_data"`
}

type Store

type Store struct {
	// contains filtered or unexported fields
}

func NewStore

func NewStore(db *sql.DB) *Store

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL