Source of file ExactRequest.php
Size: 1,836 Bytes - Last Modified: 2021-12-24T06:50:46+00:00
/var/www/docs.ssmods.com/process/src/src/ExactRequest.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 | <?php namespace Hestec\ExactOnline; use SilverStripe\Control\Director; class ExactRequest { public function ConnectApi(){ $connobject = ExactOnlineConnection::get()->first(); if (strlen($connobject->AccessToken) > 100 && strlen($connobject->RefreshToken) > 100 && $connobject->TokenExpires){ $connection = $this->ConnectInit(); $connection->setAccessToken(unserialize($connobject->AccessToken)); $connection->setRefreshToken($connobject->RefreshToken); try { $connection->connect(); } catch (\Exception $e) { throw new Exception('Could not connect to Exact: ' . $e->getMessage()); } // get and save new tokens when tokens are expired if ($connobject->TokenExpires < time()){ $connobject->AccessToken = serialize($connection->getAccessToken()); $connobject->RefreshToken = $connection->getRefreshToken(); $connobject->TokenExpires = $connection->getTokenExpires(); $connobject->write(); } return $connection; } return "No tokens"; } public function ConnectInit(){ $connconfig = ExactOnlineConnection::config(); if (strlen($connconfig->ClientId) > 20 && strlen($connconfig->ClientSecret)) { $connection = new \Picqer\Financials\Exact\Connection(); $connection->setRedirectUrl(Director::absoluteBaseURL() . "ExactController/Authorize"); // Same as entered online in the App Center $connection->setExactClientId($connconfig->ClientId); $connection->setExactClientSecret($connconfig->ClientSecret); return $connection; } return "No yml config"; } } |