mirror of
https://github.com/bitinflow/accounts.git
synced 2026-03-19 08:25:52 +00:00
Add documentation
This commit is contained in:
155
README.md
Normal file
155
README.md
Normal file
@@ -0,0 +1,155 @@
|
|||||||
|
# bitinflow Accounts
|
||||||
|
|
||||||
|
[](https://packagist.org/packages/ghostzero/bitinflow-accounts)
|
||||||
|
[](https://packagist.org/packages/ghostzero/bitinflow-accounts)
|
||||||
|
[](https://packagist.org/packages/ghostzero/bitinflow-accounts)
|
||||||
|
|
||||||
|
PHP bitinflow Accounts API Client for Laravel 5+
|
||||||
|
|
||||||
|
## Table of contents
|
||||||
|
|
||||||
|
1. [Installation](#installation)
|
||||||
|
2. [Configuration](#configuration)
|
||||||
|
3. [Examples](#examples)
|
||||||
|
4. [Documentation](#documentation)
|
||||||
|
6. [Development](#Development)
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
```
|
||||||
|
composer require ghostzero/bitinflow-accounts
|
||||||
|
```
|
||||||
|
|
||||||
|
**If you use Laravel 5.5+ you are already done, otherwise continue.**
|
||||||
|
|
||||||
|
Add Service Provider to your `app.php` configuration file:
|
||||||
|
|
||||||
|
```php
|
||||||
|
GhostZero\BitinflowAccounts\Providers\BitinflowAccountsServiceProvider::class,
|
||||||
|
```
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
Copy configuration to config folder:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ php artisan vendor:publish --provider="GhostZero\BitinflowAccounts\Providers\BitinflowAccountsServiceProvider"
|
||||||
|
```
|
||||||
|
|
||||||
|
Add environmental variables to your `.env`
|
||||||
|
|
||||||
|
```
|
||||||
|
BITINFLOW_ACCOUNTS_KEY=
|
||||||
|
BITINFLOW_ACCOUNTS_SECRET=
|
||||||
|
BITINFLOW_ACCOUNTS_REDIRECT_URI=http://localhost
|
||||||
|
```
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
#### Basic
|
||||||
|
|
||||||
|
```php
|
||||||
|
$bitinflowAccounts = new GhostZero\BitinflowAccounts\BitinflowAccounts();
|
||||||
|
|
||||||
|
$bitinflowAccounts->setClientId('abc123');
|
||||||
|
|
||||||
|
// Get SSH Key by User ID
|
||||||
|
$result = $bitinflowAccounts->getSshKeysByUserId(38);
|
||||||
|
|
||||||
|
// Check, if the query was successfull
|
||||||
|
if ( ! $result->success()) {
|
||||||
|
die('Ooops: ' . $result->error());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Shift result to get single key data
|
||||||
|
$sshKey = $result->shift();
|
||||||
|
|
||||||
|
echo $sshKey->name;
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Setters
|
||||||
|
|
||||||
|
```php
|
||||||
|
$bitinflowAccounts = new GhostZero\BitinflowAccounts\BitinflowAccounts();
|
||||||
|
|
||||||
|
$bitinflowAccounts->setClientId('abc123');
|
||||||
|
$bitinflowAccounts->setClientSecret('abc456');
|
||||||
|
$bitinflowAccounts->setToken('abcdef123456');
|
||||||
|
|
||||||
|
$bitinflowAccounts = $bitinflowAccounts->withClientId('abc123');
|
||||||
|
$bitinflowAccounts = $bitinflowAccounts->withClientSecret('abc123');
|
||||||
|
$bitinflowAccounts = $bitinflowAccounts->withToken('abcdef123456');
|
||||||
|
```
|
||||||
|
|
||||||
|
#### OAuth Tokens
|
||||||
|
|
||||||
|
```php
|
||||||
|
$bitinflowAccounts = new GhostZero\BitinflowAccounts\BitinflowAccounts();
|
||||||
|
|
||||||
|
$bitinflowAccounts->setClientId('abc123');
|
||||||
|
$bitinflowAccounts->setToken('abcdef123456');
|
||||||
|
|
||||||
|
$result = $bitinflowAccounts->getAuthedUser();
|
||||||
|
|
||||||
|
$user = $userResult->shift();
|
||||||
|
```
|
||||||
|
|
||||||
|
```php
|
||||||
|
$bitinflowAccounts->setToken('uvwxyz456789');
|
||||||
|
|
||||||
|
$result = $bitinflowAccounts->getAuthedUser();
|
||||||
|
```
|
||||||
|
|
||||||
|
```php
|
||||||
|
$result = $bitinflowAccounts->withToken('uvwxyz456789')->getAuthedUser();
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Facade
|
||||||
|
|
||||||
|
```php
|
||||||
|
use GhostZero\BitinflowAccounts\Facades\BitinflowAccounts;
|
||||||
|
|
||||||
|
BitinflowAccounts::withClientId('abc123')->withToken('abcdef123456')->getAuthedUser();
|
||||||
|
```
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
|
||||||
|
### Users
|
||||||
|
|
||||||
|
```php
|
||||||
|
public function getAuthedUser()
|
||||||
|
```
|
||||||
|
|
||||||
|
### SshKeys
|
||||||
|
|
||||||
|
```php
|
||||||
|
public function getSshKeysByUserId(int $id)
|
||||||
|
public function createSshKey(string $publicKey, string $name = NULL)
|
||||||
|
public function deleteSshKey(int $id)
|
||||||
|
```
|
||||||
|
|
||||||
|
[**OAuth Scopes Enums**](https://git.preuss.io/ghostzero/bitinflow-accounts/blob/master/src/Enums/Scope.php)
|
||||||
|
|
||||||
|
## Development
|
||||||
|
|
||||||
|
#### Run Tests
|
||||||
|
|
||||||
|
```shell
|
||||||
|
composer test
|
||||||
|
```
|
||||||
|
|
||||||
|
```shell
|
||||||
|
CLIENT_ID=xxxx CLIENT_KEY=yyyy CLIENT_ACCESS_TOKEN=zzzz composer test
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Generate Documentation
|
||||||
|
|
||||||
|
```shell
|
||||||
|
composer docs
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Join the bitinflow Discord!
|
||||||
|
|
||||||
|
[](https://discord.gg/2ZrCe2h)
|
||||||
143
README.stub
Normal file
143
README.stub
Normal file
@@ -0,0 +1,143 @@
|
|||||||
|
# bitinflow Accounts
|
||||||
|
|
||||||
|
[](https://packagist.org/packages/ghostzero/bitinflow-accounts)
|
||||||
|
[](https://packagist.org/packages/ghostzero/bitinflow-accounts)
|
||||||
|
[](https://packagist.org/packages/ghostzero/bitinflow-accounts)
|
||||||
|
|
||||||
|
PHP bitinflow Accounts API Client for Laravel 5+
|
||||||
|
|
||||||
|
## Table of contents
|
||||||
|
|
||||||
|
1. [Installation](#installation)
|
||||||
|
2. [Configuration](#configuration)
|
||||||
|
3. [Examples](#examples)
|
||||||
|
4. [Documentation](#documentation)
|
||||||
|
6. [Development](#Development)
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
```
|
||||||
|
composer require ghostzero/bitinflow-accounts
|
||||||
|
```
|
||||||
|
|
||||||
|
**If you use Laravel 5.5+ you are already done, otherwise continue.**
|
||||||
|
|
||||||
|
Add Service Provider to your `app.php` configuration file:
|
||||||
|
|
||||||
|
```php
|
||||||
|
GhostZero\BitinflowAccounts\Providers\BitinflowAccountsServiceProvider::class,
|
||||||
|
```
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
Copy configuration to config folder:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ php artisan vendor:publish --provider="GhostZero\BitinflowAccounts\Providers\BitinflowAccountsServiceProvider"
|
||||||
|
```
|
||||||
|
|
||||||
|
Add environmental variables to your `.env`
|
||||||
|
|
||||||
|
```
|
||||||
|
BITINFLOW_ACCOUNTS_KEY=
|
||||||
|
BITINFLOW_ACCOUNTS_SECRET=
|
||||||
|
BITINFLOW_ACCOUNTS_REDIRECT_URI=http://localhost
|
||||||
|
```
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
#### Basic
|
||||||
|
|
||||||
|
```php
|
||||||
|
$bitinflowAccounts = new GhostZero\BitinflowAccounts\BitinflowAccounts();
|
||||||
|
|
||||||
|
$bitinflowAccounts->setClientId('abc123');
|
||||||
|
|
||||||
|
// Get SSH Key by User ID
|
||||||
|
$result = $bitinflowAccounts->getSshKeysByUserId(38);
|
||||||
|
|
||||||
|
// Check, if the query was successfull
|
||||||
|
if ( ! $result->success()) {
|
||||||
|
die('Ooops: ' . $result->error());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Shift result to get single key data
|
||||||
|
$sshKey = $result->shift();
|
||||||
|
|
||||||
|
echo $sshKey->name;
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Setters
|
||||||
|
|
||||||
|
```php
|
||||||
|
$bitinflowAccounts = new GhostZero\BitinflowAccounts\BitinflowAccounts();
|
||||||
|
|
||||||
|
$bitinflowAccounts->setClientId('abc123');
|
||||||
|
$bitinflowAccounts->setClientSecret('abc456');
|
||||||
|
$bitinflowAccounts->setToken('abcdef123456');
|
||||||
|
|
||||||
|
$bitinflowAccounts = $bitinflowAccounts->withClientId('abc123');
|
||||||
|
$bitinflowAccounts = $bitinflowAccounts->withClientSecret('abc123');
|
||||||
|
$bitinflowAccounts = $bitinflowAccounts->withToken('abcdef123456');
|
||||||
|
```
|
||||||
|
|
||||||
|
#### OAuth Tokens
|
||||||
|
|
||||||
|
```php
|
||||||
|
$bitinflowAccounts = new GhostZero\BitinflowAccounts\BitinflowAccounts();
|
||||||
|
|
||||||
|
$bitinflowAccounts->setClientId('abc123');
|
||||||
|
$bitinflowAccounts->setToken('abcdef123456');
|
||||||
|
|
||||||
|
$result = $bitinflowAccounts->getAuthedUser();
|
||||||
|
|
||||||
|
$user = $userResult->shift();
|
||||||
|
```
|
||||||
|
|
||||||
|
```php
|
||||||
|
$bitinflowAccounts->setToken('uvwxyz456789');
|
||||||
|
|
||||||
|
$result = $bitinflowAccounts->getAuthedUser();
|
||||||
|
```
|
||||||
|
|
||||||
|
```php
|
||||||
|
$result = $bitinflowAccounts->withToken('uvwxyz456789')->getAuthedUser();
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Facade
|
||||||
|
|
||||||
|
```php
|
||||||
|
use GhostZero\BitinflowAccounts\Facades\BitinflowAccounts;
|
||||||
|
|
||||||
|
BitinflowAccounts::withClientId('abc123')->withToken('abcdef123456')->getAuthedUser();
|
||||||
|
```
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
|
||||||
|
<!-- GENERATED-DOCS -->
|
||||||
|
|
||||||
|
[**OAuth Scopes Enums**](https://git.preuss.io/ghostzero/bitinflow-accounts/blob/master/src/Enums/Scope.php)
|
||||||
|
|
||||||
|
## Development
|
||||||
|
|
||||||
|
#### Run Tests
|
||||||
|
|
||||||
|
```shell
|
||||||
|
composer test
|
||||||
|
```
|
||||||
|
|
||||||
|
```shell
|
||||||
|
CLIENT_ID=xxxx CLIENT_KEY=yyyy CLIENT_ACCESS_TOKEN=zzzz composer test
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Generate Documentation
|
||||||
|
|
||||||
|
```shell
|
||||||
|
composer docs
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Join the bitinflow Discord!
|
||||||
|
|
||||||
|
[](https://discord.gg/2ZrCe2h)
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "ghostzero/bitinflow-accounts",
|
"name": "ghostzero/bitinflow-accounts",
|
||||||
"description": "bitinflow Accounts Client for Laravel",
|
"description": "PHP bitinflow Accounts API Client for Laravel 5+",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
@@ -30,7 +30,8 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "vendor/bin/phpunit"
|
"test": "vendor/bin/phpunit",
|
||||||
|
"docs": "php generator/generate-docs.php"
|
||||||
},
|
},
|
||||||
"extra": {
|
"extra": {
|
||||||
"laravel": {
|
"laravel": {
|
||||||
|
|||||||
83
generator/generate-docs.php
Normal file
83
generator/generate-docs.php
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
require __DIR__ . '/../vendor/autoload.php';
|
||||||
|
|
||||||
|
use GhostZero\BitinflowAccounts\BitinflowAccounts;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
|
|
||||||
|
$markdown = collect(class_uses(BitinflowAccounts::class))
|
||||||
|
->map(function ($trait) {
|
||||||
|
|
||||||
|
$title = str_replace('Trait', '', Arr::last(explode('\\', $trait)));
|
||||||
|
|
||||||
|
$methods = [];
|
||||||
|
|
||||||
|
$reflection = new ReflectionClass($trait);
|
||||||
|
|
||||||
|
collect($reflection->getMethods())
|
||||||
|
->reject(function (ReflectionMethod $method) {
|
||||||
|
return $method->isAbstract();
|
||||||
|
})
|
||||||
|
->reject(function (ReflectionMethod $method) {
|
||||||
|
return $method->isPrivate() || $method->isProtected();
|
||||||
|
})
|
||||||
|
->reject(function (ReflectionMethod $method) {
|
||||||
|
return $method->isConstructor();
|
||||||
|
})
|
||||||
|
->each(function (ReflectionMethod $method) use (&$methods, $title, $trait) {
|
||||||
|
|
||||||
|
$declaration = collect($method->getModifiers())->map(function (int $modifier) {
|
||||||
|
return $modifier == ReflectionMethod::IS_PUBLIC ? 'public ' : '';
|
||||||
|
})->join(' ');
|
||||||
|
|
||||||
|
$declaration .= 'function ';
|
||||||
|
$declaration .= $method->getName();
|
||||||
|
$declaration .= '(';
|
||||||
|
|
||||||
|
$declaration .= collect($method->getParameters())->map(function (ReflectionParameter $parameter) {
|
||||||
|
|
||||||
|
$parameterString = Arr::last(explode('\\', $parameter->getType()->getName()));
|
||||||
|
$parameterString .= ' ';
|
||||||
|
$parameterString .= '$';
|
||||||
|
$parameterString .= $parameter->getName();
|
||||||
|
|
||||||
|
if ($parameter->isDefaultValueAvailable()) {
|
||||||
|
$parameterString .= ' = ';
|
||||||
|
$parameterString .= str_replace(PHP_EOL, '', var_export($parameter->getDefaultValue(), true));
|
||||||
|
}
|
||||||
|
|
||||||
|
return $parameterString;
|
||||||
|
|
||||||
|
})->join(', ');
|
||||||
|
|
||||||
|
$declaration .= ')';
|
||||||
|
|
||||||
|
$methods[] = $declaration;
|
||||||
|
});
|
||||||
|
|
||||||
|
return [$title, $methods];
|
||||||
|
})
|
||||||
|
->map(function ($args) {
|
||||||
|
|
||||||
|
list($title, $methods) = $args;
|
||||||
|
|
||||||
|
$markdown = '### ' . $title;
|
||||||
|
$markdown .= PHP_EOL . PHP_EOL;
|
||||||
|
$markdown .= '```php';
|
||||||
|
$markdown .= PHP_EOL;
|
||||||
|
|
||||||
|
$markdown .= collect($methods)->each(function ($method) {
|
||||||
|
return $method;
|
||||||
|
})->implode(PHP_EOL);
|
||||||
|
|
||||||
|
$markdown .= PHP_EOL;
|
||||||
|
$markdown .= '```';
|
||||||
|
|
||||||
|
return $markdown;
|
||||||
|
})->join(PHP_EOL . PHP_EOL);
|
||||||
|
|
||||||
|
$content = file_get_contents(__DIR__ . '/../README.stub');
|
||||||
|
|
||||||
|
$content = str_replace('<!-- GENERATED-DOCS -->', $markdown, $content);
|
||||||
|
|
||||||
|
file_put_contents(__DIR__ . '/../README.md', $content);
|
||||||
@@ -15,11 +15,6 @@
|
|||||||
<directory>tests</directory>
|
<directory>tests</directory>
|
||||||
</testsuite>
|
</testsuite>
|
||||||
</testsuites>
|
</testsuites>
|
||||||
<php>
|
|
||||||
<env name="CLIENT_ID" value="30" force="true" />
|
|
||||||
<env name="CLIENT_KEY" value="E9p7Ieb4fCwWnipNgQUxE6LtInAP9i4ofHCPAx3E" force="true" />
|
|
||||||
<env name="CLIENT_ACCESS_TOKEN" value="eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjFlOTU5Mzc2NDdlNDU4MmNjNGNjOTFhY2YwNjQzNTM3ZGI0NTE3ZTg0ODJkMjNiZTFjYTYwNjc0MmQyZjk1NmY5NmE3ZTk1YzFmODBiYjAyIn0.eyJhdWQiOiIxOCIsImp0aSI6IjFlOTU5Mzc2NDdlNDU4MmNjNGNjOTFhY2YwNjQzNTM3ZGI0NTE3ZTg0ODJkMjNiZTFjYTYwNjc0MmQyZjk1NmY5NmE3ZTk1YzFmODBiYjAyIiwiaWF0IjoxNTY3MjQ4MTU0LCJuYmYiOjE1NjcyNDgxNTQsImV4cCI6MTU5ODg3MDU1NCwic3ViIjoiMzgiLCJzY29wZXMiOlsicmVhZF91c2VyIiwiYXBpIl19.IROsZlKhIqeFhQfz0PVGb6pUvuukOaShDNui8ArTb9WHy-z7BJha-50YWAgdGUb7IEX-5zBBiouvlnUb789O81hi2ZkPCcgHMw5zapXRaIwbKOMMjPy9-dLXtRz285bki4AuEz0jCyFVXemTIePPMSCdoOT2ZjN3jv18WpoOxEKr8RZK5Cy0LRQkbcWqbVU8rGdtxdiTwe0LDOwuf9N6s4I7FJJ5bEU7i7h3CYw7KX08sUURLerK9zm0BAJmKW_QtMBMVlzVLw42A8MrkfspSY9lCIkzWMLYpZoVHZkavW3_xJ2X0K9WLS9KJTysqS3jm_DBwWUh80mqfoCW8ubwELcoxp-NevlV5RMieu-8tB45xz-wMLYuHrN-5NH3M-_o_G5TTl7cdevYUsLnloQIc2IvEJDsSgDN3LxFI5eQdtnQAtjboVJ9RC670bqAlyIyd2EXk1Ptw8xZU9JmQKt2EzG0VpK0COnjGdaGMAF_tDHhgekTHIe8cKumrf65dFWImkuH-HlPxM4V-P8IZZLWNCtFsIOXuA4Pwkxlgv5S8pS0jbrMWP3j-ngpI0_2pSLO__rG5Bc-EjPC5ch6nyyuxPdyFtSwWSc_97a0sSNYtpzinihStJvN5_dqOL5vD18Sc0gnm3tS_DRDmuZBcKwvCXg3TuvnrG-ttwpXClX67YY" force="true" />
|
|
||||||
</php>
|
|
||||||
<filter>
|
<filter>
|
||||||
<whitelist processUncoveredFilesFromWhitelist="true">
|
<whitelist processUncoveredFilesFromWhitelist="true">
|
||||||
<directory suffix=".php">src</directory>
|
<directory suffix=".php">src</directory>
|
||||||
|
|||||||
Reference in New Issue
Block a user