Как выполнить мутацию 1-many в Android?

Я использую AWS AppSync и Amplify. Фрагмент моей схемы GraphQL выглядит так:

type Inspection @model {
  id: ID!
  name: String!
  date: AWSDate!
  photos: [Photo] @connection(name: "InspectionPhotos")
}

type Photo @model {
  id: ID!
  inspection: Inspection! @connection(name: "InspectionPhotos")
  photo: String!
}

Обновлено: Вот фрагмент моей сгенерированной схемы:

input CreateInspectionInput {
    id: ID
    name: String!
    date: AWSDate!
}

input CreatePhotoInput {
    id: ID
    photo: String!
    photoInspectionId: ID!
}

type Inspection {
    id: ID!
    name: String!
    date: AWSDate!
    photos(
        filter: ModelPhotoFilterInput,
        sortDirection: ModelSortDirection,
        limit: Int,
        nextToken: String
    ): ModelPhotoConnection
}

type Photo {
    id: ID!
    inspection: Inspection!
    photo: String!
}

type Mutation {
    createInspection(input: CreateInspectionInput!): Inspection
    updateInspection(input: UpdateInspectionInput!): Inspection
    deleteInspection(input: DeleteInspectionInput!): Inspection
    createPhoto(input: CreatePhotoInput!): Photo
    updatePhoto(input: UpdatePhotoInput!): Photo
    deletePhoto(input: DeletePhotoInput!): Photo
}

Я хочу создать новую фотографию, поэтому мой ввод выглядит следующим образом:

CreatePhotoInput createPhotoInput = CreatePhotoInput.builder()
                    .photoInspectionId(inspectionId)
                    .photo(getS3Key(localPath))
                    .build();

Но при создании мутации ниже я получаю сообщение об ошибке, что поле inspection в CreatePhotoMutation.CreatePhoto ожидает объект типа CreatePhotoMutation.Inspection, а не String.

final CreatePhotoMutation.CreatePhoto expected =
                new CreatePhotoMutation.CreatePhoto(
                        "Photo",
                        UUID.randomUUID().toString(),
                        CreatePhotoInput.photoInspectionId(),
                        CreatePhotoInput.photo());

Как я могу выполнить эту мутацию, передав только photoInspectionId? Я что-то упустил, так как я новичок в Android и AppSync...

Можете ли вы создавать фотографии и проверки так, как вы ожидаете, в области запросов в AWS Appsync? console.aws.amazon.com/appsync/home

Chance Smith 14.03.2019 14:03

@ChanceSmith Да! Используя область запросов в AWS AppSync, я могу создать фотографию, передав photoInspectionId. Я не знаю, почему только в моем проекте Android мутация ожидает объект типа CreatePhotoMutation.Inspection вместо String (photoInspectionId)...

thaís.w 15.03.2019 05:34

Не могли бы вы также опубликовать свою схему, чтобы мы могли создать API на нашей стороне и помочь вам лучше? -Рохан

Rohan Dubal 17.03.2019 21:55

@RohanDubal Я добавил сгенерированную схему в свой вопрос

thaís.w 18.03.2019 01:49
1
4
74
0

Другие вопросы по теме