generated from VLADIMIR/template
add accept
This commit is contained in:
@@ -20,6 +20,8 @@ var (
|
||||
ErrInvalidTicketCount = errors.New("количество билетов должно быть от 1 до 100")
|
||||
ErrInvalidBaseURL = errors.New("необходимо настроить APP_BASE_URL — публичный адрес приложения")
|
||||
ErrTicketNotFound = tickets_repo.ErrTicketNotFound
|
||||
ErrTicketUsed = tickets_repo.ErrTicketUsed
|
||||
ErrGameFinished = tickets_repo.ErrGameFinished
|
||||
)
|
||||
|
||||
type Ticket struct {
|
||||
@@ -35,6 +37,7 @@ type Page struct {
|
||||
Location *string
|
||||
GameStatus string
|
||||
UsedAt *time.Time
|
||||
UsedBy *string
|
||||
}
|
||||
|
||||
type Service struct {
|
||||
@@ -100,9 +103,22 @@ func (s *Service) Get(ctx context.Context, token string) (*Page, error) {
|
||||
Location: info.Location,
|
||||
GameStatus: info.GameStatus,
|
||||
UsedAt: info.UsedAt,
|
||||
UsedBy: info.UsedBy,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s *Service) Accept(ctx context.Context, token string, userID int) (*Page, error) {
|
||||
hash, err := tokenHash(token)
|
||||
if err != nil {
|
||||
return nil, ErrTicketNotFound
|
||||
}
|
||||
info, err := s.repo.Accept(ctx, hash, userID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &Page{ID: info.ID, Status: info.Status, GameName: info.GameName, StartAt: info.StartAt, Location: info.Location, GameStatus: info.GameStatus, UsedAt: info.UsedAt, UsedBy: info.UsedBy}, nil
|
||||
}
|
||||
|
||||
func newToken() (string, error) {
|
||||
data := make([]byte, 32)
|
||||
if _, err := rand.Read(data); err != nil {
|
||||
|
||||
Reference in New Issue
Block a user