Improve api operations

Change directory structure
Add bitinflow-accounts socialite provider
Improve docs generation
This commit is contained in:
René Preuß
2019-09-22 21:53:49 +02:00
parent 8a3d7e0411
commit 228c845bb5
32 changed files with 569 additions and 37 deletions

View File

@@ -0,0 +1,69 @@
<?php
declare(strict_types=1);
namespace GhostZero\BitinflowAccounts\Traits;
use GhostZero\BitinflowAccounts\ApiOperations\Get;
use GhostZero\BitinflowAccounts\ApiOperations\Post;
use GhostZero\BitinflowAccounts\ApiOperations\Put;
use GhostZero\BitinflowAccounts\Result;
/**
* @author René Preuß <rene@preuss.io>
*/
trait ChargesTrait
{
use Get, Post, Put;
/**
* Create a Charge object
*
* @param array $parameters
*
* @return Result Result object
*/
public function createCharge(array $parameters): Result
{
return $this->post('charges', $parameters);
}
/**
* Get a Charge object
*
* @param string $id
*
* @return Result Result object
*/
public function getCharge(string $id): Result
{
return $this->get("charges/$id");
}
/**
* Update a Charge object
*
* @param string $id
* @param array $parameters
*
* @return Result Result object
*/
public function updateCharge(string $id, array $parameters): Result
{
return $this->put("charges/$id", $parameters);
}
/**
* Capture a Charge object
*
* @param string $id
* @param array $parameters
*
* @return Result Result object
*/
public function captureCharge(string $id, array $parameters = []): Result
{
return $this->post("charges/$id/capture", $parameters);
}
}

View File

@@ -0,0 +1,42 @@
<?php
declare(strict_types=1);
namespace GhostZero\BitinflowAccounts\Traits;
use GhostZero\BitinflowAccounts\ApiOperations\Get;
use GhostZero\BitinflowAccounts\ApiOperations\Post;
use GhostZero\BitinflowAccounts\Result;
/**
* @author René Preuß <rene@preuss.io>
*/
trait CheckoutSessionsTrait
{
use Get, Post;
/**
* Get a Session object
*
* @param string $id
*
* @return Result Result object
*/
public function getCheckoutSession(string $id): Result
{
return $this->get("checkout/sessions/$id");
}
/**
* Create a Session object
*
* @param array $parameters
*
* @return Result
*/
public function createCheckoutSession(array $parameters): Result
{
return $this->post('payments/sessions', $parameters);
}
}

View File

@@ -0,0 +1,56 @@
<?php
declare(strict_types=1);
namespace GhostZero\BitinflowAccounts\Traits;
use GhostZero\BitinflowAccounts\ApiOperations\Delete;
use GhostZero\BitinflowAccounts\ApiOperations\Get;
use GhostZero\BitinflowAccounts\ApiOperations\Post;
use GhostZero\BitinflowAccounts\Result;
trait SshKeysTrait
{
use Get, Post, Delete;
/**
* Get currently authed user with Bearer Token
*
* @param int $id
*
* @return Result Result object
*/
public function getSshKeysByUserId(int $id): Result
{
return $this->get("users/$id/keys/json", [], null);
}
/**
* Get currently authed user with Bearer Token
*
* @param string $publicKey
* @param string|null $name
*
* @return Result Result object
*/
public function createSshKey(string $publicKey, string $name = null): Result
{
return $this->post('ssh-keys', [
'public_key' => $publicKey,
'name' => $name,
]);
}
/**
* Get currently authed user with Bearer Token
*
* @param int $id
*
* @return Result Result object
*/
public function deleteSshKey(int $id): Result
{
return $this->delete("ssh-keys/$id", []);
}
}

View File

@@ -0,0 +1,23 @@
<?php
declare(strict_types=1);
namespace GhostZero\BitinflowAccounts\Traits;
use GhostZero\BitinflowAccounts\ApiOperations\Get;
use GhostZero\BitinflowAccounts\Result;
trait UsersTrait
{
use Get;
/**
* Get currently authed user with Bearer Token
* @return Result Result object
*/
public function getAuthedUser(): Result
{
return $this->get('users/me', [], null);
}
}