Skip to content

cannot assign/get project resources #350

@nosilver4u

Description

@nosilver4u

Hi, when we try to use DigitalOceanV2\Api\ProjectResource->getProjectResources() or DigitalOceanV2\Api\ProjectResource->assignResources() it throws an error:

PHP Fatal error:  Uncaught TypeError: Cannot assign stdClass to property DigitalOceanV2\Entity\ProjectResource::$links of type array in ./vendor/toin0u/digitalocean-v2/src/Entity/AbstractEntity.php:62
Stack trace:
#0 ./vendor/toin0u/digitalocean-v2/src/Entity/AbstractEntity.php(35): DigitalOceanV2\Entity\AbstractEntity->build()
#1 ./vendor/toin0u/digitalocean-v2/src/Api/ProjectResource.php(36): DigitalOceanV2\Entity\AbstractEntity->__construct()
#2 [internal function]: DigitalOceanV2\Api\ProjectResource->DigitalOceanV2\Api\{closure}()
#3 ./vendor/toin0u/digitalocean-v2/src/Api/ProjectResource.php(35): array_map()
#4 xyz.php(74): DigitalOceanV2\Api\ProjectResource->getProjectResources()
#5 {main}
  thrown in ./vendor/toin0u/digitalocean-v2/src/Entity/AbstractEntity.php on line 62

or:

PHP Fatal error:  Uncaught TypeError: Cannot assign stdClass to property DigitalOceanV2\Entity\ProjectResource::$links of type array in ./vendor/toin0u/digitalocean-v2/src/Entity/AbstractEntity.php:62
Stack trace:
#0 ./vendor/toin0u/digitalocean-v2/src/Entity/AbstractEntity.php(35): DigitalOceanV2\Entity\AbstractEntity->build()
#1 ./vendor/toin0u/digitalocean-v2/src/Api/ProjectResource.php(54): DigitalOceanV2\Entity\AbstractEntity->__construct()
#2 [internal function]: DigitalOceanV2\Api\ProjectResource->DigitalOceanV2\Api\{closure}()
#3 ./vendor/toin0u/digitalocean-v2/src/Api/ProjectResource.php(53): array_map()
#4 xyz.php(79): DigitalOceanV2\Api\ProjectResource->assignResources()
#5 {main}
  thrown in ./vendor/toin0u/digitalocean-v2/src/Entity/AbstractEntity.php on line 62

Also, the latter does not seem to handle permissions errors very well and simply does this:

PHP Fatal error:  Uncaught DigitalOceanV2\Exception\RuntimeException: Server Error in ./vendor/toin0u/digitalocean-v2/src/HttpClient/Plugin/ExceptionThrower.php:80
Stack trace:
#0 ./vendor/toin0u/digitalocean-v2/src/HttpClient/Plugin/ExceptionThrower.php(54): DigitalOceanV2\HttpClient\Plugin\ExceptionThrower::createException()
#1 ./vendor/php-http/httplug/src/Promise/HttpFulfilledPromise.php(28): DigitalOceanV2\HttpClient\Plugin\ExceptionThrower->DigitalOceanV2\HttpClient\Plugin\{closure}()
#2 ./vendor/toin0u/digitalocean-v2/src/HttpClient/Plugin/ExceptionThrower.php(50): Http\Client\Promise\HttpFulfilledPromise->then()
#3 ./vendor/php-http/client-common/src/PluginChain.php(44): DigitalOceanV2\HttpClient\Plugin\ExceptionThrower->handleRequest()
#4 ./vendor/php-http/client-common/src/PluginChain.php(59): Http\Client\Common\PluginChain->Http\Client\Common\{closure}()
#5 ./vendor/php-http/client-common/src/PluginClient.php(84): Http\Client\Common\PluginChain->__invoke()
#6 ./vendor/php-http/client-common/src/HttpMethodsClient.php(148): Http\Client\Common\PluginClient->sendRequest()
#7 ./vendor/php-http/client-common/src/HttpMethodsClient.php(107): Http\Client\Common\HttpMethodsClient->sendRequest()
#8 ./vendor/php-http/client-common/src/HttpMethodsClient.php(70): Http\Client\Common\HttpMethodsClient->send()
#9 ./vendor/toin0u/digitalocean-v2/src/Api/AbstractApi.php(87): Http\Client\Common\HttpMethodsClient->post()
#10 ./vendor/toin0u/digitalocean-v2/src/Api/ProjectResource.php(49): DigitalOceanV2\Api\AbstractApi->post()
#11 xyz.php(39): DigitalOceanV2\Api\ProjectResource->assignResources()
#12 {main}
  thrown in ./vendor/toin0u/digitalocean-v2/src/HttpClient/Plugin/ExceptionThrower.php on line 80

Perhaps the API only throws a 500, but if it's possible to determine anything useful from the response, it'd be nice to expose that.

But at the moment, it's more pressing to just get the ProjectResource methods working :)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions