usecase

package
v1.4.2 Latest Latest
Warning

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

Go to latest
Published: Sep 24, 2022 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AuthUseCase

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

AuthUseCase は認証・認可に関するユースケースです。

func NewAuthUseCase

func NewAuthUseCase(authCli spotify.Auth, userCli spotify.User, repo repository.Auth, userRepo repository.User, sessionRepo repository.Session) *AuthUseCase

NewAuthUseCase はAuthUseCaseのポインタを生成します。

func (*AuthUseCase) Authorization

func (u *AuthUseCase) Authorization(state, code string) (string, string, error)

Authorization はcodeを使って認可をチェックします。 認可に成功した場合はフロントエンドのリダイレクトURLとセッションIDを返します。 リダイレクトURLは空である可能性がある点に注意してください。

func (*AuthUseCase) GetAuthURL

func (u *AuthUseCase) GetAuthURL(redirectURL string) (string, error)

GetAuthURL はSpotifyの認可画面のリンクを生成します。 CSRF対策のためにstateを保存しておいて、callbackを受け取った時に正当性を確認する必要がある。

func (*AuthUseCase) GetTokenAndCreatorIDBySessionID

func (u *AuthUseCase) GetTokenAndCreatorIDBySessionID(sessionID string) (*oauth2.Token, string, error)

GetTokenAndCreatorIDBySessionID は指定されたidからsessionの持つcreatorのtokenを返します

func (*AuthUseCase) GetTokenByUserID

func (u *AuthUseCase) GetTokenByUserID(userID string) (*oauth2.Token, error)

GetTokenByUserID は対応したユーザのアクセストークンを取得します。

func (*AuthUseCase) GetUserIDFromSession

func (u *AuthUseCase) GetUserIDFromSession(sessionID string) (string, error)

GetUserIDFromSession はセッションIDから対応するユーザIDを返します。

func (*AuthUseCase) RefreshAccessToken

func (u *AuthUseCase) RefreshAccessToken(userID string, token *oauth2.Token) (*oauth2.Token, error)

RefreshAccessToken はリフレッシュトークンを使用してアクセストークンを更新し保存します。

type BatchUseCase

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

BatchUseCase はセッションに関するユースケースです。

func NewBatchUseCase

func NewBatchUseCase(sessionRepo repository.Session, pusher event.Pusher) *BatchUseCase

NewBatchUseCase はSessionUseCaseのポインタを生成します。

func (*BatchUseCase) ArchiveOldSessions

func (s *BatchUseCase) ArchiveOldSessions() error

ArchiveOldSessions は古いSessionのstateをArchivedに変更します

type SessionStateUseCase

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

SessionStateUseCase はセッションの再生に関するユースケースです。

func NewSessionStateUseCase

func NewSessionStateUseCase(sessionRepo repository.Session, playerCli spotify.Player, pusher event.Pusher, timerUC *SessionTimerUseCase) *SessionStateUseCase

NewSessionPlayerUseCase はSessionPlayerUseCaseのポインタを生成します。

func (*SessionStateUseCase) ChangeSessionState

func (s *SessionStateUseCase) ChangeSessionState(ctx context.Context, sessionID string, st entity.StateType) error

ChangeSessionState は与えられたセッションのstateを操作します。

func (*SessionStateUseCase) NextTrack added in v1.2.0

func (s *SessionStateUseCase) NextTrack(ctx context.Context, sessionID string) error

NextTrack は指定されたidのsessionを次の曲に進めます

type SessionTimerUseCase

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

func NewSessionTimerUseCase

func NewSessionTimerUseCase(sessionRepo repository.Session, playerCli spotify.Player, pusher event.Pusher, tm *entity.SyncCheckTimerManager) *SessionTimerUseCase

type SessionUseCase

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

SessionUseCase はセッションに関するユースケースです。

func NewSessionUseCase

func NewSessionUseCase(sessionRepo repository.Session, userRepo repository.User, playerCli spotify.Player, trackCli spotify.TrackClient, userCli spotify.User, pusher event.Pusher, timerUC *SessionTimerUseCase) *SessionUseCase

NewSessionUseCase はSessionUseCaseのポインタを生成します。

func (*SessionUseCase) CanConnectToPusher

func (s *SessionUseCase) CanConnectToPusher(ctx context.Context, sessionID string) error

CanConnectToPusher はイベントをクライアントにプッシュするためのコネクションを貼れるかどうかチェックします。

func (*SessionUseCase) CreateSession

func (s *SessionUseCase) CreateSession(ctx context.Context, sessionName string, creatorID string, allowToControlByOthers bool) (*entity.SessionWithUser, error)

CreateSession は与えられたセッション名のセッションを作成します。

func (*SessionUseCase) EnqueueTrack

func (s *SessionUseCase) EnqueueTrack(ctx context.Context, sessionID string, trackURI string) error

EnqueueTrack はセッションのqueueにTrackを追加します。

func (*SessionUseCase) GetActiveDevices

func (s *SessionUseCase) GetActiveDevices(ctx context.Context) ([]*entity.Device, error)

GetActiveDevices はログインしているユーザがSpotifyを起動している端末を取得します。

func (*SessionUseCase) GetSession

GetSession は指定されたidからsessionの情報を返します

func (*SessionUseCase) SetDevice

func (s *SessionUseCase) SetDevice(ctx context.Context, sessionID string, deviceID string) error

SetDevice は指定されたidのセッションの作成者と再生する端末を紐付けて再生するデバイスを指定します。

type TrackUseCase

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

TrackUseCase は音楽に関するユースケースです。

func NewTrackUseCase

func NewTrackUseCase(track spotify.TrackClient) *TrackUseCase

NewTrackUseCase はTrackUseCaseのポインタを生成します。

func (*TrackUseCase) SearckTracks

func (t *TrackUseCase) SearckTracks(ctx context.Context, q string) ([]*entity.Track, error)

SearchTracks はクエリから音楽を検索します。

type UserUseCase

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

UserUseCase はユーザに関係するアプリケーションロジックを担当する構造体です。

func NewUserUseCase

func NewUserUseCase(userCli spotify.User, userRepo repository.User) *UserUseCase

NewUserUseCase はUserUseCaseのポインタを生成する関数です。

func (*UserUseCase) GetMe

GetMe はログインしているユーザを取得します。

Jump to

Keyboard shortcuts

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