Привет! У меня возникла проблема в коде GraphQL, где при попытке выполнить операцию `sign in` вылезает ошибка "GraphQLError: Query root type must be provided". Я определил операцию `sign in` как Mutation, но автосхема GraphQL генерирует ее как Query. Вот кусочек кода:
```typescript
@Mutation(() => SignResponse)
signIn(signInInput: SignInInput) {
return this.authService.signIn(signInInput);
}
@InputType()
export class SignInInput {
@IsEmail({}, { message: "email must be an email" })
@IsNotEmpty()
@Field(type => String)
email: string;
@MinLength(6, { message: "Password must be at least 6 characters long" })
@IsString()
@IsNotEmpty()
@Field(type => String)
password: string;
}
```
Мне нужна помощь разобраться, почему GraphQL автоматически определяет операцию `sign in` как Query вместо Mutation, так как я указал `@Mutation`. Если у вас есть вопросы или требуются дополнительные пояснения, буду рад их предоставить.
Для исправления ошибки "GraphQLError: Query root type must be provided" необходимо убедиться, что операция `sign in` правильно определена как Mutation в вашем резолвере.
Одной из возможных причин такой ошибки может быть неправильное использование декоратора `@Resolver()` для вашего класса резолвера. Убедитесь, что вы правильно указали тип операции в декораторе `@Mutation()`:
```typescript
@Resolver()
export class AuthResolver {
@Mutation(() => SignResponse)
async signIn(@Args('input') signInInput: SignInInput): Promise<SignResponse> {
return this.authService.signIn(signInInput);
}
}
```
Также убедитесь, что вы используете правильные декораторы для аргументов метода `signIn`, например `@Args()` для обработки входных данных.
После внесения этих изменений перезапустите сервер GraphQL и попробуйте выполнить операцию `sign in`. Это должно помочь исправить ошибку и правильно определить операцию как Mutation. Если проблема остается, пожалуйста, проверьте остальной код и конфигурацию сервера GraphQL.