Как выполнить мутацию 1-много в Android? - PullRequest
1 голос
/ 08 марта 2019

Я использую 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, а не строку.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...