This commit is contained in:
31
internal/api/requests/users/current.go
Normal file
31
internal/api/requests/users/current.go
Normal file
@@ -0,0 +1,31 @@
|
||||
package users
|
||||
|
||||
import (
|
||||
"context"
|
||||
"go/types"
|
||||
|
||||
"clintonambulance.com/calculate_negative_points/internal/api/middleware"
|
||||
internal_types "clintonambulance.com/calculate_negative_points/internal/types"
|
||||
"github.com/coreos/go-oidc/v3/oidc"
|
||||
"github.com/samber/lo"
|
||||
"github.com/swaggest/usecase"
|
||||
)
|
||||
|
||||
func GetCurrentUser() usecase.Interactor {
|
||||
u := usecase.NewInteractor(func(ctx context.Context, input types.Nil, output *internal_types.UiUserResponse) error {
|
||||
ctxId := ctx.Value("user").(*oidc.IDToken)
|
||||
ctxUser := ctx.Value("claims").(middleware.Claims)
|
||||
|
||||
if lo.IsNotEmpty(ctxId.Issuer) {
|
||||
output.Item = internal_types.UiUser{
|
||||
Name: ctxUser.Name,
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
|
||||
u.SetDescription("Retrieve the current user")
|
||||
u.SetTags("Users")
|
||||
return u
|
||||
}
|
||||
Reference in New Issue
Block a user