Как поместить объект в массив с помощью GraphQL? - PullRequest
0 голосов
/ 21 декабря 2018

Я хотел бы изменить способ, которым мой распознаватель создает платежные карты в моей БД.Итак, теперь я создаю кошелек в одной коллекции, а затем платеж в другой коллекции и использую в своем платеже wallet_id, чтобы связать их.Но теперь я хочу поместить платежи в карты [], которые определены в кошельке.Есть идеи, как это сделать в resolver?

Это моя схема Wallet

const WalletSchema = new Schema({
    tokens: {
        type: Number,
        default: 0
    },
    userId: {
        type: Schema.Types.ObjectId,
        ref: 'User',
        unique: true
    },
    cards: [
        {
            type: Schema.Types.ObjectId,
            ref: 'Payment'
        }
    ]
}, { timestamps: true });

, а это мой createPayment resolver

createPayment: async (_, { wallet_id, ...args }, { user }) => {
    try {
        await requireAuth(user);
        const payment = await Payment.create({ ...args, wallet: wallet_id });

        pubsub.publish(PAYMENT_ADDED, { [PAYMENT_ADDED]: payment });

        return payment;
    } catch (error) {
        throw error;
    }
},

Есть идеи?

1 Ответ

0 голосов
/ 21 декабря 2018

Вам необходимо создать еще одну схему для карточных платежей;

const WalletSchema = new Schema({
    tokens: {
        type: Number,
        default: 0
    },
    userId: {
        type: Schema.Types.ObjectId,
        ref: 'User',
        unique: true
    },
    cards: [ PaymentSchema ] <-- here
}, { timestamps: true });

// новая схема

const PaymentSchema = new Schema({
     type: Schema.Types.ObjectId,
     ref: 'Payment'
   });

На основе схемы кошелька необходимо написать схему expose graphql

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