mirror of
https://github.com/bitinflow/accounts.git
synced 2026-03-13 13:35: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",
|
||||
"description": "bitinflow Accounts Client for Laravel",
|
||||
"description": "PHP bitinflow Accounts API Client for Laravel 5+",
|
||||
"license": "MIT",
|
||||
"authors": [
|
||||
{
|
||||
@@ -30,7 +30,8 @@
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"test": "vendor/bin/phpunit"
|
||||
"test": "vendor/bin/phpunit",
|
||||
"docs": "php generator/generate-docs.php"
|
||||
},
|
||||
"extra": {
|
||||
"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>
|
||||
</testsuite>
|
||||
</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>
|
||||
<whitelist processUncoveredFilesFromWhitelist="true">
|
||||
<directory suffix=".php">src</directory>
|
||||
|
||||
Reference in New Issue
Block a user