graphql-compose-mongoose mongooseResolver
graphql-compose-mongoose mongooseResolver
middleware 쓰듯
mongoose 모델 컨버팅 시 composeMongoose 사용
composeMongoose 로 컨버팅된 modeld 은 여러 메서드 제공
createOne, updateOne 같은 메서드로 원하는 Document CRUD 가능
wrapResolve 를 통해 실행 전의 Resolver 접근 가능
미들웨어 방식과 매우 비슷
import { pick } from 'lodash';
import { UserModelTC } from '../';
// resolver 이름
const name = 'join';
export const resolver = UserModelTC.mongooseResolvers
.createOne()
// wrapResolver 로 중간 단계 접근
.wrapResolve((next) => async (rp) => {
// graphQL 매개변수 접근
const args = rp.args;
args.record = {
...pick(args.record, [
'kakaoId',
'appleId',
'name',
'email',
'cellPhone',
'nick',
'profileImageUrl',
'password',
'type',
'metaData',
'address',
'birth',
'marketingCheck',
'emailId',
]),
status: UserStatus.Active,
gender: gender,
};
// next 로 다음 다음 단계 이행
return next(rp);
});
// initializer
export const init = () => {
return {
[name]: resolver,
};
};