This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
backend/internal/graphql/resolvers/user_resolver.go

90 lines
2.4 KiB
Go
Raw Normal View History

2021-03-06 10:54:55 +00:00
package resolvers
// This file will be automatically regenerated based on the schema, any resolver implementations
// will be copied through when generating and any unknown code will be moved to the end.
import (
"context"
"github.com/Kichiyaki/goutil/safeptr"
2021-03-06 10:54:55 +00:00
2022-09-20 16:46:47 +00:00
"gitea.dwysokinski.me/zdam-egzamin-zawodowy/backend/internal/chi/middleware"
"gitea.dwysokinski.me/zdam-egzamin-zawodowy/backend/internal/graphql/generated"
"gitea.dwysokinski.me/zdam-egzamin-zawodowy/backend/internal/model"
"gitea.dwysokinski.me/zdam-egzamin-zawodowy/backend/internal/user"
2021-03-06 10:54:55 +00:00
)
2021-07-14 04:58:10 +00:00
func (r *mutationResolver) CreateUser(ctx context.Context, input model.UserInput) (*model.User, error) {
2021-03-06 11:29:33 +00:00
return r.UserUsecase.Store(ctx, &input)
2021-03-06 10:54:55 +00:00
}
2021-07-14 04:58:10 +00:00
func (r *mutationResolver) UpdateUser(ctx context.Context, id int, input model.UserInput) (*model.User, error) {
2021-03-06 11:29:33 +00:00
return r.UserUsecase.UpdateOneByID(ctx, id, &input)
2021-03-06 10:54:55 +00:00
}
2021-07-14 04:58:10 +00:00
func (r *mutationResolver) UpdateManyUsers(ctx context.Context, ids []int, input model.UserInput) ([]*model.User, error) {
2021-03-06 11:29:33 +00:00
return r.UserUsecase.UpdateMany(
ctx,
2021-07-14 04:58:10 +00:00
&model.UserFilter{
2021-03-06 11:29:33 +00:00
ID: ids,
},
&input,
)
2021-03-06 10:54:55 +00:00
}
2021-07-14 04:58:10 +00:00
func (r *mutationResolver) DeleteUsers(ctx context.Context, ids []int) ([]*model.User, error) {
return r.UserUsecase.Delete(ctx, &model.UserFilter{
2021-03-06 11:29:33 +00:00
ID: ids,
})
2021-03-06 10:54:55 +00:00
}
2021-03-06 11:29:33 +00:00
func (r *mutationResolver) SignIn(
ctx context.Context,
email string,
password string,
staySignedIn *bool,
) (*generated.UserWithToken, error) {
var err error
userWithToken := &generated.UserWithToken{}
userWithToken.User, userWithToken.Token, err = r.AuthUsecase.SignIn(
ctx,
email,
password,
2021-05-02 07:15:10 +00:00
safeptr.SafeBoolPointer(staySignedIn, false),
2021-03-06 11:29:33 +00:00
)
if err != nil {
return nil, err
}
return userWithToken, nil
2021-03-06 10:54:55 +00:00
}
2021-03-06 11:29:33 +00:00
func (r *queryResolver) Users(
ctx context.Context,
2021-07-14 04:58:10 +00:00
filter *model.UserFilter,
2021-03-06 11:29:33 +00:00
limit *int,
offset *int,
sort []string,
) (*generated.UserList, error) {
var err error
userList := &generated.UserList{}
userList.Items, userList.Total, err = r.UserUsecase.Fetch(
ctx,
&user.FetchConfig{
Count: shouldCount(ctx),
Filter: filter,
2021-05-02 07:15:10 +00:00
Limit: safeptr.SafeIntPointer(limit, user.FetchMaxLimit),
Offset: safeptr.SafeIntPointer(offset, 0),
2021-03-06 11:29:33 +00:00
Sort: sort,
},
)
return userList, err
2021-03-06 10:54:55 +00:00
}
2021-07-14 04:58:10 +00:00
func (r *queryResolver) User(ctx context.Context, id int) (*model.User, error) {
2021-03-06 11:29:33 +00:00
return r.UserUsecase.GetByID(ctx, id)
2021-03-06 10:54:55 +00:00
}
2021-07-14 04:58:10 +00:00
func (r *queryResolver) Me(ctx context.Context) (*model.User, error) {
2021-05-02 06:36:10 +00:00
u, _ := middleware.UserFromContext(ctx)
return u, nil
2021-03-06 10:54:55 +00:00
}