apigee / apigee-m10n-drupal

Add monetization features to a Drupal developer portal
https://www.drupal.org/project/apigee_m10n
GNU General Public License v2.0
13 stars 13 forks source link

Accepted A Rate Plan Using API Causes Error In Rateplan view IN Dev Portal #295

Closed shuhaibofficial closed 3 years ago

shuhaibofficial commented 3 years ago

Description

I have just Subscribed for Plan using Apigee Management API (Accept Rate Plan) But I made Mistake in the Request Body of the Accept rate Plan API. I put Invalid date in the field of startDate: 20201-06-23 This is not Valid date but Apigee API Managemet Server did not thrown an Error .

API Request :

POST http://localhost:8080/v1/mint/organizations/orgs/developers/902014ss@gmail.com/developer-rateplans Content-Type: application/json Authorization: Basic

 {
    "developer": {
        "id": "developers/902014ss@gmail.com"
    },
    "startDate": "20201-06-23",
    "ratePlan": {
        "id": "calculator_pkg-myax_test_plan_r2"
    },
    "suppressWarning": "true",
    "waveTerminationCharge": false
}

Response:

Http Status : 201 Created

{
  "created" : "2021-06-23 09:49:53",
  "developer" : {
    "address" : [ ],
    "billingType" : "PREPAID",
    "broker" : false,
    "customAttributes" : [ ],
    "email" : "902014ss@gmail.com",
    "id" : "LXmHRSEDCK6yMpIz",
    "isCompany" : false,
    "legalName" : "902014ss@gmail.com",
    "name" : "SHUHAIB",
    "organization" : {
      "approveTrusted" : false,
      "approveUntrusted" : false,
      "billingCycle" : "CALENDAR_MONTH",
      "country" : "SA",
      "currency" : "SAR",
      "description" : "",
      "hasBillingAdjustment" : false,
      "hasBroker" : false,
      "hasSelfBilling" : false,
      "hasSeparateInvoiceForProduct" : false,
      "id" : "org",
      "issueNettingStmt" : false,
      "name" : "org",
      "nettingStmtPerCurrency" : false,
      "selfBillingAsExchOrg" : true,
      "selfBillingForAllDev" : false,
      "separateInvoiceForFees" : false,
      "status" : "ACTIVE",
      "supportedBillingType" : "BOTH",
      "taxEngineExternalId" : "APIGEE01",
      "taxModel" : "HYBRID",
      "timezone" : "UTC"
    },
    "status" : "ACTIVE",
    "type" : "UNTRUSTED"
  },
  "id" : "47d5fda6-a66e-4184-a0c6-3f620abebb1f",
  "nextCycleStartDate" : "20201-06-23 00:00:00",
  "nextRecurringFeeDate" : "20201-06-23 00:00:00",
  "ratePlan" : {
    "advance" : false,
    "contractDuration" : 1,
    "contractDurationType" : "MONTH",
    "currency" : {
      "description" : "Saudi Arabia Riyals",
      "displayName" : "Saudi Arabia Riyals",
      "id" : "sar",
      "minimumTopupAmount" : 100.0000,
      "name" : "SAR",
      "organization" : {
        "approveTrusted" : false,
        "approveUntrusted" : false,
        "billingCycle" : "CALENDAR_MONTH",
        "country" : "SA",
        "currency" : "SAR",
        "description" : "org",
        "hasBillingAdjustment" : false,
        "hasBroker" : false,
        "hasSelfBilling" : false,
        "hasSeparateInvoiceForProduct" : false,
        "id" : "org",
        "issueNettingStmt" : false,
        "name" : "org",
        "nettingStmtPerCurrency" : false,
        "selfBillingAsExchOrg" : true,
        "selfBillingForAllDev" : false,
        "separateInvoiceForFees" : false,
        "status" : "ACTIVE",
        "supportedBillingType" : "BOTH",
        "taxEngineExternalId" : "APIGEE01",
        "taxModel" : "HYBRID",
        "timezone" : "UTC"
      },
      "status" : "ACTIVE",
      "virtualCurrency" : false
    },
    "customPaymentTerm" : true,
    "description" : "TEST_PLAN_R2",
    "displayName" : "TEST_PLAN_R2",
    "earlyTerminationFee" : 0.0000,
    "frequencyDuration" : 2,
    "frequencyDurationType" : "DAY",
    "id" : "calculator_pkg-myax_test_plan_r2",
    "isPrivate" : false,
    "keepOriginalStartDate" : false,
    "monetizationPackage" : {
      "description" : "Calculator_PKG",
      "displayName" : "Calculator_PKG",
      "id" : "calculator_pkg-myax",
      "name" : "Calculator_PKG",
      "organization" : {
        "approveTrusted" : false,
        "approveUntrusted" : false,
        "billingCycle" : "CALENDAR_MONTH",
        "country" : "SA",
        "currency" : "SAR",
        "description" : "org",
        "hasBillingAdjustment" : false,
        "hasBroker" : false,
        "hasSelfBilling" : false,
        "hasSeparateInvoiceForProduct" : false,
        "id" : "org",
        "issueNettingStmt" : false,
        "name" : "org",
        "nettingStmtPerCurrency" : false,
        "selfBillingAsExchOrg" : true,
        "selfBillingForAllDev" : false,
        "separateInvoiceForFees" : false,
        "status" : "ACTIVE",
        "supportedBillingType" : "BOTH",
        "taxEngineExternalId" : "APIGEE01",
        "taxModel" : "HYBRID",
        "timezone" : "UTC"
      },
      "product" : [ {
        "customAtt1Name" : "Message_len",
        "description" : "implements addition for now auth.",
        "displayName" : "Calculator",
        "id" : "calculator",
        "name" : "Calculator",
        "organization" : {
          "approveTrusted" : false,
          "approveUntrusted" : false,
          "billingCycle" : "CALENDAR_MONTH",
          "country" : "SA",
          "currency" : "SAR",
          "description" : "org",
          "hasBillingAdjustment" : false,
          "hasBroker" : false,
          "hasSelfBilling" : false,
          "hasSeparateInvoiceForProduct" : false,
          "id" : "org",
          "issueNettingStmt" : false,
          "name" : "org",
          "nettingStmtPerCurrency" : false,
          "selfBillingAsExchOrg" : true,
          "selfBillingForAllDev" : false,
          "separateInvoiceForFees" : false,
          "status" : "ACTIVE",
          "supportedBillingType" : "BOTH",
          "taxEngineExternalId" : "APIGEE01",
          "taxModel" : "HYBRID",
          "timezone" : "UTC"
        },
        "status" : "CREATED",
        "transactionSuccessCriteria" : "txProviderStatus == 'OK'"
      } ],
      "status" : "CREATED"
    },
    "name" : "TEST_PLAN_R2",
    "organization" : {
      "approveTrusted" : false,
      "approveUntrusted" : false,
      "billingCycle" : "CALENDAR_MONTH",
      "country" : "SA",
      "currency" : "SAR",
      "description" : "org",
      "hasBillingAdjustment" : false,
      "hasBroker" : false,
      "hasSelfBilling" : false,
      "hasSeparateInvoiceForProduct" : false,
      "id" : "org",
      "issueNettingStmt" : false,
      "name" : "org",
      "nettingStmtPerCurrency" : false,
      "selfBillingAsExchOrg" : true,
      "selfBillingForAllDev" : false,
      "separateInvoiceForFees" : false,
      "status" : "ACTIVE",
      "supportedBillingType" : "BOTH",
      "taxEngineExternalId" : "APIGEE01",
      "taxModel" : "HYBRID",
      "timezone" : "UTC"
    },
    "paymentDueDays" : "30",
    "prorate" : false,
    "published" : true,
    "ratePlanDetails" : [ {
      "aggregateFreemiumCounters" : true,
      "aggregateStandardCounters" : true,
      "aggregateTransactions" : true,
      "currency" : {
        "description" : "Saudi Arabia Riyals",
        "displayName" : "Saudi Arabia Riyals",
        "id" : "sar",
        "minimumTopupAmount" : 100.0000,
        "name" : "SAR",
        "organization" : {
          "approveTrusted" : false,
          "approveUntrusted" : false,
          "billingCycle" : "CALENDAR_MONTH",
          "country" : "SA",
          "currency" : "SAR",
          "description" : "org",
          "hasBillingAdjustment" : false,
          "hasBroker" : false,
          "hasSelfBilling" : false,
          "hasSeparateInvoiceForProduct" : false,
          "id" : "org",
          "issueNettingStmt" : false,
          "name" : "org",
          "nettingStmtPerCurrency" : false,
          "selfBillingAsExchOrg" : true,
          "selfBillingForAllDev" : false,
          "separateInvoiceForFees" : false,
          "status" : "ACTIVE",
          "supportedBillingType" : "BOTH",
          "taxEngineExternalId" : "APIGEE01",
          "taxModel" : "HYBRID",
          "timezone" : "UTC"
        },
        "status" : "ACTIVE",
        "virtualCurrency" : false
      },
      "customPaymentTerm" : true,
      "duration" : 1,
      "durationType" : "MONTH",
      "freemiumDuration" : 0,
      "freemiumDurationType" : "MONTH",
      "freemiumUnit" : 0,
      "id" : "a10bb105-4d95-49ec-b4d7-d15e0b20a9fd",
      "meteringType" : "UNIT",
      "organization" : {
        "approveTrusted" : false,
        "approveUntrusted" : false,
        "billingCycle" : "CALENDAR_MONTH",
        "country" : "SA",
        "currency" : "SAR",
        "description" : "org",
        "hasBillingAdjustment" : false,
        "hasBroker" : false,
        "hasSelfBilling" : false,
        "hasSeparateInvoiceForProduct" : false,
        "id" : "org",
        "issueNettingStmt" : false,
        "name" : "org",
        "nettingStmtPerCurrency" : false,
        "selfBillingAsExchOrg" : true,
        "selfBillingForAllDev" : false,
        "separateInvoiceForFees" : false,
        "status" : "ACTIVE",
        "supportedBillingType" : "BOTH",
        "taxEngineExternalId" : "APIGEE01",
        "taxModel" : "HYBRID",
        "timezone" : "UTC"
      },
      "paymentDueDays" : "30",
      "ratePlanRates" : [ {
        "id" : "8eba70ae-96f2-486f-967c-2d0be7a80aed",
        "rate" : 1.0000,
        "startUnit" : 0,
        "type" : "RATECARD"
      } ],
      "ratingParameter" : "VOLUME",
      "type" : "RATECARD"
    } ],
    "recurringFee" : 110.0000,
    "recurringStartUnit" : 1,
    "recurringType" : "CALENDAR",
    "setUpFee" : 0.0000,
    "startDate" : "2021-06-23 00:00:00",
    "type" : "STANDARD"
  },
  "renewalDate" : "20201-07-23 00:00:00",
  "startDate" : "20201-06-23 00:00:00",
  "updated" : "2021-06-23 09:49:53",
  "waiveTerminationCharge" : false
}

Steps to Reproduce

Steps to reproduce the behavior:

  1. Call the Apigee Management API to Accept a Plan [The Body of Api should Contain startDate:20201 like this date (its an illegal date)]. this will cause error in Developer Portal side
  2. go to Drupal 8 Developer Portal
  3. login as user which is Accepted this Rate Plan in here [ 902014ss@gmail.com ]
  4. navigate To Pricing And Plans 5.Click Any Plan , It will Throw PHP Error "Failed to parse time string (20201-06-22 00:00:00) at position 12 (0)"

Actual Behavior

Its Throwing Error While Opening the any of the Plan details http:///user/25/monetization/product-bundle/bundle_pkg-etni/plan/pkg-etni_annual_subscription

Drupal\Core\Entity\EntityStorageException: DateTimeImmutable::__construct(): Failed to parse time string (20201-06-22 00:00:00) at position 12 (0): Double time specification in Drupal\apigee_edge\Entity\Storage\EdgeEntityStorageBase->withController() (line 220 of modules/contrib/apigee_edge/src/Entity/Storage/EdgeEntityStorageBase.php).

Symfony\Component\Serializer\Normalizer\DateTimeNormalizer->denormalize() (Line: 182)
Symfony\Component\Serializer\Serializer->denormalize() (Line: 276)
Symfony\Component\Serializer\Normalizer\AbstractObjectNormalizer->validateAndDenormalize() (Line: 197)
Symfony\Component\Serializer\Normalizer\AbstractObjectNormalizer->denormalize() (Line: 111)
Apigee\Edge\Denormalizer\ObjectDenormalizer->denormalize() (Line: 38)
Apigee\Edge\Api\Monetization\Denormalizer\AcceptedRatePlanDenormalizer->denormalize() (Line: 37)
Apigee\Edge\Api\Monetization\Denormalizer\DeveloperAcceptedRatePlanDenormalizer->denormalize() (Line: 182)
Symfony\Component\Serializer\Serializer->denormalize() (Line: 76)
Apigee\Edge\Serializer\EntitySerializer->denormalize() (Line: 180)
Apigee\Edge\Api\Monetization\Controller\AcceptedRatePlanController->getAcceptedRatePlans() (Line: 56)
Apigee\Edge\Api\Monetization\Controller\AcceptedRatePlanController->getAllAcceptedRatePlans() (Line: 114)
Drupal\apigee_m10n\Entity\Storage\Controller\DeveloperAcceptedRatePlanSdkControllerProxy->loadByDeveloperId() (Line: 92)
Drupal\apigee_m10n\Entity\Storage\PurchasedPlanStorage->Drupal\apigee_m10n\Entity\Storage\{closure}() (Line: 217)
Drupal\apigee_edge\Entity\Storage\EdgeEntityStorageBase->withController() (Line: 100)
Drupal\apigee_m10n\Entity\Storage\PurchasedPlanStorage->loadByDeveloperId() (Line: 214)
Drupal\apigee_m10n\Entity\PurchasedPlan::loadByDeveloperId() (Line: 426)
Drupal\apigee_m10n\Monetization->isDeveloperAlreadySubscribed() (Line: 164)
Drupal\apigee_m10n\Entity\Form\PurchasedPlanForm->buildForm()
call_user_func_array() (Line: 532)
Drupal\Core\Form\FormBuilder->retrieveForm() (Line: 278)
Drupal\Core\Form\FormBuilder->buildForm() (Line: 61)
Drupal\Core\Entity\EntityFormBuilder->getForm() (Line: 165)
Drupal\apigee_m10n\Plugin\Field\FieldFormatter\PurchasePlanFormFormatter->viewValue() (Line: 58)
Drupal\apigee_m10n_teams\Plugin\Field\FieldFormatter\TeamPurchasePlanFormFormatter->viewValue() (Line: 133)
Drupal\apigee_m10n\Plugin\Field\FieldFormatter\PurchasePlanFormFormatter->viewElements() (Line: 89)
Drupal\Core\Field\FormatterBase->view() (Line: 263)
Drupal\Core\Entity\Entity\EntityViewDisplay->buildMultiple() (Line: 351)
Drupal\Core\Entity\EntityViewBuilder->buildComponents() (Line: 293)
Drupal\Core\Entity\EntityViewBuilder->buildMultiple() (Line: 250)
Drupal\Core\Entity\EntityViewBuilder->build()
call_user_func_array() (Line: 100)
Drupal\Core\Render\Renderer->doTrustedCallback() (Line: 781)
Drupal\Core\Render\Renderer->doCallback() (Line: 372)
Drupal\Core\Render\Renderer->doRender() (Line: 200)
Drupal\Core\Render\Renderer->render() (Line: 226)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 573)
Drupal\Core\Render\Renderer->executeInRenderContext() (Line: 227)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare() (Line: 117)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse() (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray() (Line: 76)
Drupal\webprofiler\EventDispatcher\TraceableEventDispatcher->dispatch() (Line: 156)
Symfony\Component\HttpKernel\HttpKernel->handleRaw() (Line: 68)
Symfony\Component\HttpKernel\HttpKernel->handle() (Line: 57)
Drupal\Core\StackMiddleware\Session->handle() (Line: 47)
Drupal\Core\StackMiddleware\KernelPreHandle->handle() (Line: 106)
Drupal\page_cache\StackMiddleware\PageCache->pass() (Line: 85)
Drupal\page_cache\StackMiddleware\PageCache->handle() (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle() (Line: 38)
Drupal\webprofiler\StackMiddleware\WebprofilerMiddleware->handle() (Line: 52)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle() (Line: 23)
Stack\StackedHttpKernel->handle() (Line: 708)
Drupal\Core\DrupalKernel->handle() (Line: 19)

Expected Behavior

1.At least the Management Server Should Not Enable this plan & it should throw an Error

  1. Drupal Developer Portal Need to return a generic Error other than failing .

Screenshots

If applicable, add screenshots to help explain your problem.

Notes

I am Using private cloud 4.500 How to fix this issue, This is Issue Only Occuring for this Particular User 902014ss@gmail.com

Version Info

_Private Cloud RELEASEID=4.50.00.00

Composer show:

apigee/apigee-client-php 2.0.5 Client library for connec... apigee/apigee_devportal_kickstart 1.20.0 A fast demo and starting ... asm89/stack-cors 1.3.0 Cross-origin resource sha... behat/mink v1.8.1 Browser controller/emulat... behat/mink-browserkit-driver v1.3.4 Symfony2 BrowserKit drive... behat/mink-goutte-driver v1.2.1 Goutte driver for Mink fr... behat/mink-selenium2-driver v1.4.0 Selenium2 (WebDriver) dri... chi-teck/drupal-code-generator 1.32.1 Drupal code generator clue/stream-filter v1.4.1 A simple and modern appro... commerceguys/addressing v1.0.9 Addressing library powere... commerceguys/intl v1.0.6 Internationalization libr... composer/ca-bundle 1.2.8 Lets you find a path to t... composer/composer 1.10.13 Composer helps you declar... composer/installers v1.9.0 A multi-framework Compose... composer/semver 1.5.1 Semver library that offer... composer/spdx-licenses 1.5.4 SPDX licenses list and va... composer/xdebug-handler 1.4.3 Restarts a process withou... consolidation/annotated-command 2.12.0 Initialize Symfony Consol... consolidation/config 1.2.1 Provide configuration ser... consolidation/filter-via-dot-access-data 1.0.0 This project uses dflydev... consolidation/log 1.1.1 Improved Psr-3 / Psr\Log ... consolidation/output-formatters 3.5.0 Format text by applying t... consolidation/robo 1.4.12 Modern task runner consolidation/self-update 1.2.0 Provides a self:update co... consolidation/site-alias 3.0.1 Manage alias records for ... consolidation/site-process 2.1.0 A thin wrapper around the... container-interop/container-interop 1.2.0 Promoting the interoperab... cweagans/composer-patches 1.6.7 Provides a way to patch C... dflydev/dot-access-data v1.1.0 Given a deep data structu... dnoegel/php-xdg-base-dir v0.1.1 implementation of xdg bas... doctrine/annotations v1.4.0 Docblock Annotations Parser doctrine/cache v1.6.2 Caching library offering ... doctrine/collections v1.4.0 Collections Abstraction l... doctrine/common v2.7.3 Common Library for Doctri... doctrine/inflector v1.2.0 Common String Manipulatio... doctrine/instantiator 1.3.1 A small, lightweight util... doctrine/lexer 1.0.2 PHP Doctrine Lexer parser... drupal/address 1.8.0 Provides functionality fo... drupal/admin_toolbar 2.3.0 Provides a drop-down menu... drupal/adminimal_admin_toolbar 1.11.0 Adminimal styling brought... drupal/apigee_api_catalog 2.4.0 Apigee API Catalog for Dr... drupal/apigee_edge 1.16.0 Apigee Edge for Drupal. drupal/apigee_m10n 1.6.0 Apigee Edge Monetization ... drupal/better_exposed_filters 5.0.0-beta1 Replaces the Views defaul... drupal/coder 8.3.10 Coder is a library to rev... drupal/commerce 2.21.0 Drupal Commerce is a flex... drupal/components 2.0.0-beta3 Sets up folders of compon... drupal/core 8.9.6 Drupal is an open source ... drupal/core-composer-scaffold 8.9.6 A flexible Composer proje... drupal/core-dev 8.9.6 require-dev dependencies ... drupal/core-project-message 8.9.6 Adds a message after Comp... drupal/core-recommended 8.9.6 Locked core dependencies;... drupal/ctools 3.4.0 Provides a number of util... drupal/default_content 1.0.0-alpha9 Imports default content w... drupal/email_registration 1.1.0 Allows users to register ... drupal/entity 1.1.0 Provides expanded entity ... drupal/entity_reference_revisions 1.8.0 Entity Reference Revisions drupal/file_link 2.0.0 Extends the core Link mod... drupal/fontawesome 2.17.0 The web's most popular ic... drupal/inline_entity_form 1.0.0-rc7 Provides a widget for inl... drupal/jquery_ui 1.4.0 Provides jQuery UI library. drupal/jquery_ui_datepicker 1.0.0 Provides jQuery UI Datepi... drupal/jquery_ui_slider 1.1.0 Provides jQuery UI Slider... drupal/jquery_ui_touch_punch 1.0.0 Provides jQuery UI Touch ... drupal/key 1.14.0 Provides the ability to m... drupal/openid_connect 1.0.0-rc1 A pluggable client implem... drupal/paragraphs 1.12.0 Enables the creation of P... drupal/pathauto 1.8.0 Provides a mechanism for ... drupal/profile 1.1.0 Provides configurable use... drupal/radix 4.10.0 Radix is a base theme for... drupal/requirement 1.1.0 A Drupal module to that g... drupal/smtp 1.0.0 Allow for site emails to ... drupal/state_machine 1.0.0 Provides code-driven work... drupal/token 1.7.0 Provides a user interface... drush/drush 9.7.2 Drush is a command line s... easyrdf/easyrdf 0.9.1 EasyRdf is a PHP library ... egulias/email-validator 2.1.17 A library for validating ... fabpot/goutte v3.2.3 A simple PHP Web Scraper fightbulc/moment 1.32.1 Parse, validate, manipula... firebase/php-jwt v5.2.0 A simple library to encod... grasmash/expander 1.0.0 Expands internal property... grasmash/yaml-expander 1.4.0 Expands internal property... guzzlehttp/guzzle 6.5.4 Guzzle is a PHP HTTP clie... guzzlehttp/promises v1.3.1 Guzzle promises library guzzlehttp/psr7 1.6.1 PSR-7 message implementat... instaclick/php-webdriver 1.4.7 PHP WebDriver for Selenium 2 jcalderonzumba/gastonjs v1.2.0 PhantomJS API based serve... jcalderonzumba/mink-phantomjs-driver v0.3.3 PhantomJS driver for Mink... justinrainbow/json-schema 5.2.10 A library to validate a j... laminas/laminas-diactoros 1.8.7p2 PSR HTTP Message implemen... laminas/laminas-escaper 2.6.1 Securely and safely escap... laminas/laminas-feed 2.12.2 provides functionality fo... laminas/laminas-stdlib 3.2.1 SPL extensions, array uti... laminas/laminas-zendframework-bridge 1.0.4 Alias legacy ZF class nam... league/container 2.4.1 A fast and intuitive depe... league/period 3.4.0 A time range immutable va... masterminds/html5 2.3.0 An HTML5 parser and seria... mikey179/vfsstream v1.6.8 Virtual file system to mo... myclabs/deep-copy 1.10.1 Create deep copies (clone... nikic/php-parser v4.10.2 A PHP parser written in PHP paragonie/random_compat v9.99.99 PHP 5.x polyfill for rand... pear/archive_tar 1.4.9 Tar file management class... pear/console_getopt v1.4.3 More info available on: h... pear/pear-core-minimal v1.10.10 Minimal set of PEAR core ... pear/pear_exception v1.0.1 The PEAR Exception base c... phar-io/manifest 1.0.3 Component for reading pha... phar-io/version 2.0.1 Library for handling vers... php-http/client-common 1.10.0 Common HTTP Client implem... php-http/discovery 1.12.0 Finds installed HTTPlug i... php-http/guzzle6-adapter v1.1.1 Guzzle 6 HTTP Adapter php-http/httplug v1.1.0 HTTPlug, the HTTP client ... php-http/message 1.9.0 HTTP Message related tools php-http/message-factory v1.0.2 Factory interfaces for PS... php-http/promise 1.1.0 Promise used for asynchro... phpdocumentor/reflection-common 2.2.0 Common reflection classes... phpdocumentor/reflection-docblock 4.3.4 With this component, a li... phpdocumentor/type-resolver 1.4.0 A PSR-5 based resolver of... phpmailer/phpmailer v6.1.8 PHPMailer is a full-featu... phpspec/prophecy v1.10.3 Highly opinionated mockin... phpunit/php-code-coverage 6.1.4 Library that provides col... phpunit/php-file-iterator 2.0.2 FilterIterator implementa... phpunit/php-text-template 1.2.1 Simple template engine. phpunit/php-timer 2.1.2 Utility class for timing phpunit/php-token-stream 3.1.1 Wrapper around PHP's toke... phpunit/phpunit 7.5.20 The PHP Unit Testing fram... psr/container 1.0.0 Common Container Interfac... psr/http-message 1.0.1 Common interface for HTTP... psr/log 1.1.3 Common interface for logg... psy/psysh v0.10.4 An interactive shell for ... ralouphie/getallheaders 3.0.3 A polyfill for getallhead... sebastian/code-unit-reverse-lookup 1.0.1 Looks up which function o... sebastian/comparator 3.0.2 Provides the functionalit... sebastian/diff 3.0.2 Diff implementation sebastian/environment 4.2.3 Provides functionality to... sebastian/exporter 3.1.2 Provides the functionalit... sebastian/global-state 2.0.0 Snapshotting of global state sebastian/object-enumerator 3.0.3 Traverses array structure... sebastian/object-reflector 1.1.1 Allows reflection of obje... sebastian/recursion-context 3.0.0 Provides functionality to... sebastian/resource-operations 2.0.1 Provides a list of PHP bu... sebastian/version 2.0.1 Library that helps with m... seld/jsonlint 1.8.2 JSON Linter seld/phar-utils 1.1.1 PHAR file format utilitie... sirbrillig/phpcs-variable-analysis v2.8.3 A PHPCS sniff to detect p... squizlabs/php_codesniffer 3.5.6 PHP_CodeSniffer tokenizes... stack/builder v1.0.5 Builder for stack middlew... symfony-cmf/routing 1.4.1 Extends the Symfony2 rout... symfony/browser-kit v3.4.45 Symfony BrowserKit Component symfony/class-loader v3.4.41 Symfony ClassLoader Compo... symfony/console v3.4.41 Symfony Console Component symfony/css-selector v3.4.45 Symfony CssSelector Compo... symfony/debug v3.4.41 Symfony Debug Component symfony/dependency-injection v3.4.41 Symfony DependencyInjecti... symfony/deprecation-contracts v2.2.0 A generic function and co... symfony/dom-crawler v3.4.45 Symfony DomCrawler Component symfony/event-dispatcher v3.4.41 Symfony EventDispatcher C... symfony/filesystem v3.4.45 Symfony Filesystem Component symfony/finder v3.4.45 Symfony Finder Component symfony/http-foundation v3.4.41 Symfony HttpFoundation Co... symfony/http-kernel v3.4.44 Symfony HttpKernel Component symfony/inflector v5.1.6 Symfony Inflector Component symfony/lock v3.4.45 Symfony Lock Component symfony/options-resolver v4.4.14 Symfony OptionsResolver C... symfony/phpunit-bridge v3.4.45 Symfony PHPUnit Bridge symfony/polyfill-ctype v1.17.0 Symfony polyfill for ctyp... symfony/polyfill-iconv v1.17.0 Symfony polyfill for the ... symfony/polyfill-intl-grapheme v1.18.1 Symfony polyfill for intl... symfony/polyfill-intl-idn v1.17.0 Symfony polyfill for intl... symfony/polyfill-intl-normalizer v1.18.1 Symfony polyfill for intl... symfony/polyfill-mbstring v1.17.0 Symfony polyfill for the ... symfony/polyfill-php56 v1.17.0 Symfony polyfill backport... symfony/polyfill-php70 v1.17.0 Symfony polyfill backport... symfony/polyfill-php72 v1.17.0 Symfony polyfill backport... symfony/polyfill-php80 v1.18.1 Symfony polyfill backport... symfony/polyfill-util v1.17.0 Symfony utilities for por... symfony/process v3.4.41 Symfony Process Component symfony/property-access v4.4.14 Symfony PropertyAccess Co... symfony/property-info v4.4.14 Symfony Property Info Com... symfony/psr-http-message-bridge v1.1.2 PSR HTTP message bridge symfony/routing v3.4.41 Symfony Routing Component symfony/serializer v3.4.41 Symfony Serializer Component symfony/string v5.1.6 Symfony String component symfony/translation v3.4.41 Symfony Translation Compo... symfony/validator v3.4.41 Symfony Validator Component symfony/var-dumper v4.4.14 Symfony mechanism for exp... symfony/yaml v3.4.41 Symfony Yaml Component theseer/tokenizer 1.2.0 A small library for conve... twig/twig v1.42.5 Twig, the flexible, fast,... typo3/phar-stream-wrapper v3.1.4 Interceptors for PHP's na... webflo/drupal-finder 1.2.0 Helper class to locate a ... webmozart/assert 1.9.1 Assertions to validate me... webmozart/path-util 2.3.0 A robust cross-platform u...

divya-intelli commented 3 years ago

Hi @shuhaibofficial , Thanks for your contribution on this issue. I have notified the edge team (via b/194283012) to review it as well. Since this is not an issue that would be caused when user is using the devportal to subscribe to a plan, I will close this issue for now. We can handle that error if someone has managed to go and enter invalid dates so I will add a new issue for error handling and prioritize it as needed.