Appsyn c Обновление и удаление мутаций не работает - PullRequest
2 голосов
/ 27 марта 2020

Я использую AppSyn c для моего приложения. Вот краткий обзор моего файла Schema.graphql

type Item @model
  @auth(rules: [
    { allow: public, provider: apiKey, operations: [read] },
    { allow: groups, groups: ["admin"] }
  ]) {
  id: ID!
  name: String!
  soldUnits: String!
  soldAs: [Float!]
  price: Float!
  isAvailable: Boolean!
  availableAmount: Float!
  category: String!
  isVeg: Boolean!
  offer: [String!]
  about: String
  storage: String
  benifits: String
  otherInfo: String
  rating: Int
  keywords: [String!]
  reviews: [String]
  images: [String]
  updatedBy: String
  addedBy: String
  qty: Int
  inventroy: Inventory @connection(name: "ItemInventory")
}

type User @model {
  id: ID!
  firstName: String!
  lastName: String!
  about: String
  phoneNumber: String
  email: String
  countryCode: String
  addresses: [Address] @connection
  orders: [Order] @connection(name: "OwnOrder")
}

type CartItem {
    id: ID!
    count: Int!
    name: String!
    price: Float
}

type Address @model {
  id: ID!
  lat: Float!
  long: Float!
  fullAddress: String!
  apartment: String!
  street: String
  area: String!
  district: String!
  city: String
  state: String!
  zip: Int!
  country: String!
  phoneNumber: String!
}

type InventoryAddress @model {
  id: ID!
  address: Address @connection
  inventroy: Inventory! @connection(name: "InventoryAddress")
}

type Order @model {
  id: ID!
  orderdate: AWSDate!
  ordertime: AWSTime!
  deliverySlot: String!
  deliveryDate: AWSDate!
  deliveryInput: String!
  deliveryPhoneNumber: String!
  deliveryPhoneCountryCode: String!
  deliveryAddress: String!
  deliveredTime: AWSDate
  deliveredDate: AWSDate
  deliveryCharges: Float!
  totalAmount: Float!
  paidAmount: Float!
  discount: Float!
  unpaidAmount: Float!
  status: String!
  paymentMethod: String!
  paymentId: String!
  itemsCount: Int!
  items: [CartItem]
  deliverAssignedTo: Patron @connection(name: "PatronOrder")
  owner: User @connection(name: "OwnOrder")
  inventroyDetails: Inventory @connection(name: "InventoryOrder")
}

type Patron @model {
  id: ID!
  age: Int!
  firstName: String!
  lastName: String!
  about: String
  workTime: String
  rating: Int!
  reviews: [String]
  addressProof: String!
  role: String
  workArea: Address @connection
  address: Address @connection
  deliveries: [Order] @connection(name: "PatronOrder")
  inventroyDetails: Inventory! @connection(name: "PatronInventory")
  addedItems: [Item] @connection
}

type Inventory @model {
  id: ID!
  address: InventoryAddress @connection(name: "InventoryAddress")
  patron: [Patron] @connection(name: "PatronInventory")
  items: [Item] @connection(name: "ItemInventory")
  orders: [Order] @connection(name: "InventoryOrder")
  manager: Patron @connection
  admins: [Patron] @connection
}

Это моя схема GraphQL, созданная в AppSyn c. Я могу запросить данные и создать мутацию, но обновление и удаление мутации не работает.

mutation UpdateAddressInput {
  updateAddress(input:{
    id:"af5cd7e6-8213-48b6-aa8e-9d2d6999742c",
   area:"New Delhi"
  }){
    id,
    area
  }
}

Это пример запроса, как вы можете видеть возвращаемые данные ниже, они не отражаются в DynamoDB

{
  "data": {
    "updateAddress": {
      "id": "af5cd7e6-8213-48b6-aa8e-9d2d6999742c",
      "area": "Electronic City"
    }
  }
}

1 Ответ

0 голосов
/ 27 апреля 2020

Вы увидите автоматически сгенерированное поле «_version» в вашей таблице DynamoDB. Посмотрите значение _version для идентификатора, который вы хотите обновить поле области. Когда вы получите адрес, вы получите поле "_version". Попробуйте что-то вроде этого

mutation UpdateAddressInput {  
    updateAddress(input:{
     id:"af5cd7e6-8213-48b6-aa8e-9d2d6999742c",
     area:"New Delhi",

     _version:variable name // _version value in dynamoDB table for                                
                            //  the desired row.

    }){
    id, 
    area   
  }
}
...