31 lines
729 B
Go
31 lines
729 B
Go
package ui
|
|
|
|
import (
|
|
identityDTO "git.pbiernat.space/egommerce/api-entities/identity/dto"
|
|
"git.pbiernat.space/egommerce/identity-service/internal/service"
|
|
)
|
|
|
|
type RefreshTokenActionUI struct {
|
|
auth *service.AuthService
|
|
}
|
|
|
|
func NewRefreshTokenActionUI(auth *service.AuthService) *RefreshTokenActionUI {
|
|
return &RefreshTokenActionUI{
|
|
auth: auth,
|
|
}
|
|
}
|
|
|
|
func (ui *RefreshTokenActionUI) Execute(header *identityDTO.AuthorizationHeaderDTO) (string, error) {
|
|
token, _ := ui.auth.GetTokenFromAuthorizationHeader(header)
|
|
newToken, err := ui.auth.RefreshToken(token)
|
|
if err != nil {
|
|
if err == service.ErrUnableToCacheToken { // FIXME: Move to RefreshHandlerFn
|
|
return "", err
|
|
}
|
|
|
|
return "", err
|
|
}
|
|
|
|
return newToken, nil
|
|
}
|