Files
nhost/services/auth/go/controller/sign_in_pat.go

37 lines
870 B
Go

package controller
import (
"context"
oapimw "github.com/nhost/nhost/internal/lib/oapi/middleware"
"github.com/nhost/nhost/services/auth/go/api"
"github.com/nhost/nhost/services/auth/go/sql"
)
func (ctrl *Controller) SignInPAT( //nolint:ireturn
ctx context.Context,
request api.SignInPATRequestObject,
) (api.SignInPATResponseObject, error) {
logger := oapimw.LoggerFromContext(ctx)
user, apiErr := ctrl.wf.GetUserByRefreshTokenHash(
ctx,
request.Body.PersonalAccessToken,
sql.RefreshTokenTypePAT,
logger,
)
if apiErr != nil {
return ctrl.respondWithError(apiErr), nil
}
session, err := ctrl.wf.NewSession(ctx, user, nil, logger)
if err != nil {
logger.ErrorContext(ctx, "error getting new session", logError(err))
return ctrl.sendError(ErrInternalServerError), nil
}
return api.SignInPAT200JSONResponse{
Session: session,
}, nil
}