Подготовка углового почтового запроса - PullRequest
0 голосов
/ 10 марта 2019

Я работаю над угловым прототипом, который использует SaaS (Zuora) Backend. Мой Prototype может создавать новые заказы в Zuora с информацией, заполненной в реактивной форме для информации об учетной записи и т. Д. (В основном все, что только что должно появиться один раз в запросе POST). Но я понятия не имею, как добавить в вызов «n» (1 = <) подписок. </p>

На данный момент сервис частично зашифрован: Функция сообщения из службы:

 postOrders(orderStructure) {
    console.log('create Order');
    return this.http.post(ZUORA_URL + '/v1/orders/', orderStructure, {
      headers
    });
  }

Создать функцию в компоненте:

  createOrder() {
    const orderStructure = {
      existingAccountNumber: this.firstFormGroup.value.soldToControl[
        'Account Number'
      ],
      orderDate: formatDate(
        this.firstFormGroup.value.orderDate,
        'yyyy-MM-dd',
        'en'
      ),
      processingOptions: {
        billingOptions: {
          targetDate: '2019-08-01' // was ist das?
        },
        collectPayment: true,
        runBilling: true
      },
      subscriptions: [
        {
          orderActions: [
            {
              createSubscription: {
                subscribeToRatePlans: [
                  {
                    productRatePlanId: '8adce4216904fb6201690a1a15537188'
                  }
                ],
                terms: {
                  autoRenew: this.firstFormGroup.value.autorenew,
                  initialTerm: {
                    period: this.firstFormGroup.value.iterm,
                    periodType: this.firstFormGroup.value.itermPeriod,
                    startDate: formatDate(
                      this.firstFormGroup.value.termDate,
                      'yyyy-MM-dd',
                      'en'
                    ),
                    termType: 'TERMED'
                  },
                  renewalSetting: 'RENEW_WITH_SPECIFIC_TERM',
                  renewalTerms: [
                    {
                      period: this.firstFormGroup.value.rterm,
                      periodType: this.firstFormGroup.value.rtermPeriod
                    }
                  ]
                }
              },
              triggerDates: [
                {
                  name: 'ContractEffective',
                  triggerDate: formatDate(
                    this.firstFormGroup.value.triggerDate,
                    'yyyy-MM-dd',
                    'en'
                  )
                }
              ],
              type: 'CreateSubscription'
            }
          ]
        }
      ]
    };
    this.zuoraService.postOrders(orderStructure).subscribe(data => {
      console.log(data);
    });

Как я могу добавить n порядков в структуру подписки?

спасибо за помощь!

1 Ответ

0 голосов
/ 13 марта 2019

исправлено добавлением дополнительного цикла для предварительной выборки поступления заказа:

createOrder() {
    // Set the standard values if they haven't been changed
    if (this.firstFormGroup.value.rterm === '') {
      this.firstFormGroup.value.rterm = '12';
    }
    if (this.firstFormGroup.value.iterm === '') {
      this.firstFormGroup.value.iterm = '12';
    }
    if (!this.firstFormGroup.value.autorenew) {
      this.firstFormGroup.value.autorenew = 'false';
    }
    const subscriptions_cont = [];
    this.orderIntake.forEach(element => {
      const orderActions_cont =
        {
          orderActions: [
            {
              createSubscription: {
                subscribeToRatePlans: [
                  {
                    productRatePlanId: element.productRatePlans['id']
                  }
                ],
                terms: {
                  autoRenew: this.firstFormGroup.value.autorenew,
                  initialTerm: {
                    period: this.firstFormGroup.value.iterm,
                    periodType: this.firstFormGroup.value.itermPeriod,
                    startDate: formatDate(
                      this.firstFormGroup.value.termDate,
                      'yyyy-MM-dd',
                      'en'
                    ),
                    termType: 'TERMED'
                  },
                  renewalSetting: 'RENEW_WITH_SPECIFIC_TERM',
                  renewalTerms: [
                    {
                      period: 12,
                      periodType: 'Month'
                    }
                  ]
                }
              },
              triggerDates: [
                {
                  name: 'ContractEffective',
                  triggerDate: formatDate(
                    this.firstFormGroup.value.contractEffectiveDate,
                    'yyyy-MM-dd',
                    'en'
                  )
                },
                {
                  name: 'ServiceActivation',
                  triggerDate: formatDate(
                    this.firstFormGroup.value.serviceActivationDate,
                    'yyyy-MM-dd',
                    'en'
                  )
                },
                {
                  name: 'CustomerAcceptance',
                  triggerDate: formatDate(
                    this.firstFormGroup.value.customerAcceptanceDate,
                    'yyyy-MM-dd',
                    'en'
                  )
                }
              ],
              type: 'CreateSubscription'
            }
          ]
        };
      console.log('orderActions', orderActions_cont);
      subscriptions_cont.push(orderActions_cont);
      console.log('subscriptions zusammen', subscriptions_cont);
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...