Не получается вызвать массив объектов GraphQL
Есть функция запроса, которая должна возвращать массив объектов, такого содержания:
Messages [{
id: 16,
message: 'rgrgegergerg',
sender_name: 'gfregrgrg',
sender_id: '1',
send_date: 2021-04-21T04:33:13.285Z
},
Messages {
id: 15,
message: 'ergvergreg',
sender_name: 'gfregrgrg',
sender_id: '1',
send_date: 2021-04-21T04:33:10.551Z
},
Messages {
id: 14,
message: 'gergrege',
sender_name: 'gfregrgrg',
sender_id: '1',
send_date: 2021-04-21T04:33:09.430Z
}
]
Этот массив возвращает функция initializeMessages:
@Query(() => MessageModel, { name: 'initializeMessages' })
async initializeMessages() {
return await this.messagesService.initializeMessages().then((result) => {
return result;
});
}
Ожидается возврат по такой модели (нулябельность стоит временно):
@ObjectType()
export class MessageModel {
@Field(() => Int, { nullable: true })
id?: number;
@Field({ nullable: true })
message!: string;
@Field({ nullable: true })
sender_name!: string;
@Field(() => Int, { nullable: true })
sender_id?: number;
@Field({ nullable: true })
send_date?: string;
@Field(() => [MessagesModel])
messages: MessagesModel[];
}
Модель массива:
@ObjectType()
export class MessagesModel {
@Field(() => Int, { nullable: true })
id?: number;
@Field({ nullable: true })
message!: string;
@Field({ nullable: true })
sender_name!: string;
@Field(() => Int, { nullable: true })
sender_id?: number;
@Field({ nullable: true })
send_date?: string;
}
Пытаюсь сделать такой запрос через подсказки графа, но выбивает ошибку синтаксиса:
query kavo {
initializeMessages {
messages{...}
}
}
Подскажите как правильно сделать запрос в моем случае.
Ответы (1 шт):
Автор решения: MrYogurt
→ Ссылка
Проблему решил. Убрал в модели это:
@Field(() => [MessagesModel])
messages: MessagesModel[];
И изменил запрос:
@Query(() => MessageModel
На:
@Query(() => [MessageModel]
Кто же знал, что здесь массив определяется не в конце по стандарту.
