Ошибка обновления данных GraphQL через мутацию в AWS AppSync - PullRequest
1 голос
/ 31 марта 2019

Я успешно создал данные, используя мутацию, но когда я обновляю эти данные, я получаю эту ошибку

Переменная 'input' привела нулевое значение для типа NonNull 'Int!

Вот моя схема запроса

type SmoothstarRegisteration @model @versioned {
  id: ID!

  active: Boolean!

  type: String!
  registerationSubmitDate: String
  registerationApprovedDate: String
  userId: String!
  videoInfoReviewed: Boolean!

  registerationAttempts: Int!
  registerationStatus: String

  orderNum: String
  orderInfo: OrderInfo @connection(name: "SmoothstarRegisterationOrder")

  address: String
  postCode: String
  region: String
  dateOfBirth: String
  smoothstarModel: String
  purchaseDate: String
  shopName: String
  ocrInfo: OCRInfo @connection(name: "SmoothstarRegisterationOCR")

  privacyPolicyReviewed: Boolean!
  extendedPolicyReviewed: Boolean!
  termsOfUseReviewed: Boolean!

  files: [RegisterationMedia!] @connection(name: "SmoothstarRegisterationMedia")
}

Вот запрос на обновление

mutation UpdateSmoothstarRegisteration(
  $input: UpdateSmoothstarRegisterationInput!
) {
  updateSmoothstarRegisteration(input: $input) {
    id
    active
    type
    registerationSubmitDate
    registerationApprovedDate
    userId
    videoInfoReviewed
    registerationAttempts
    registerationStatus
    orderNum
    orderInfo {
      id
      active
      type
      orderNum
    }
    address
    postCode
    region
    dateOfBirth
    smoothstarModel
    purchaseDate
    shopName
    ocrInfo {
      id
      active
      type
      customerId
      customerEmail
      customerPhone
      orderNum
      address
    }
    privacyPolicyReviewed
    extendedPolicyReviewed
    termsOfUseReviewed
    files {
      items {
        id
        version
      }
      nextToken
    }
    version
  }
}

Вот код для вызова API.

return API.graphql(graphqlOperation(operation, data))
    .then(response => {
      console.log(`API (${name}) Response => `, response);
      return response;
    })
    .catch(error => {
      throw error;
    });

В Operation Я отправляю запрос на обновление, где, как в данных, я помещаю

{ input: {
    active: true
    extendedPolicyReviewed: true
    id: "9dfc480f-7bed-42ed-a585-820f5e8c1485"
    orderNum: "ABCD1234xyz"
    privacyPolicyReviewed: true
    registerationAttempts: 2
    registerationStatus: "registered"
    registerationSubmitDate: "2019-03-31"
    smoothstarRegisterationOrderInfoId: "03b6967d-4b86-4c2d-9115-fb7a40a9c474"
    termsOfUseReviewed: true
    type: "W"
    userId: "m.daniyal.awan@gmail.com"
    videoInfoReviewed: true 
}}

1 Ответ

1 голос
/ 01 апреля 2019

Я выяснил проблему, свойство expectedVersion отсутствовало во входных данных.Только что добавил expectedVersion: 1 и это хорошо.Номер должен быть точным по отношению к записи версии, присутствующей в текущих данных, вам придется увеличивать ее при каждом вызове обновления.

...