separated modifiers, added standard

This commit is contained in:
Fred 2020-12-07 06:21:31 +08:00
parent 5c11fc0552
commit 92f6e190dc
5 changed files with 35 additions and 33 deletions

View File

@ -8,7 +8,7 @@ It produce a shortcode to fetch and format content from a APIgoat project API.
It is based on DevinVinson/WordPress-Plugin-Boilerplate(https://github.com/DevinVinson/WordPress-Plugin-Boilerplate) It is based on DevinVinson/WordPress-Plugin-Boilerplate(https://github.com/DevinVinson/WordPress-Plugin-Boilerplate)
## Details ## Details
* classes/APIgoatList.php is the main shortcode definition * classes/APIgoatListModifiers.php is the main shortcode definition
* classes/APIgoatFetchAPI.php contains the authentication and query * classes/APIgoatFetchAPI.php contains the authentication and query
* classes/APIgoatDoc.php is a formater * classes/APIgoatDoc.php is a formater

View File

@ -9,18 +9,20 @@ class APIgoatDoc extends APIgoatTemplate
$menu = ''; $menu = '';
foreach ($data as $row) { foreach ($data as $row) {
if (!empty($row['name'])) {
$menu .= li(href($row['name'], '#' . $row['title']), "class='page_item wd-state-closed'"); $menu .= li(href($row['name'], '#' . $row['title']), "class='page_item wd-state-closed'");
$content .= div( $content .= div(
anchor($row['title']) anchor($row['title'])
. h2($row['title'], "class='entry-title'") . h2($row['title'], "class='entry-title'")
. h3($row['name']) . h3($row['name'])
. span($row['type'] . " " . $row['value']) . h4($row['group'])
. p(trim($row['text'])) . span($row['type'] . " " . $row['value'])
. ((!empty($row['example'])) ? div(span("Example:") . pre(htmlentities($row['example']))) : ''), . p(trim($row['text']))
"", . ((!empty($row['example'])) ? div(span("Example:") . pre(htmlentities($row['example']))) : ''),
"class='doc-item'" "",
); "class='doc-item'"
);
}
} }
foreach ($headers as $name => $header) { foreach ($headers as $name => $header) {

View File

@ -9,9 +9,9 @@ include_once plugin_dir_path(dirname(__FILE__)) . 'includes/html_helper.php';
class APIgoatFetchAPI class APIgoatFetchAPI
{ {
private $username = 'wp-behavior@apigoat.com'; private $username = 'sysadmin';
private $password = 'iDhj3wsyYs7WrrS'; private $password = 'vezvez';
private $baseURI = 'https://x.apigoat.com/api/v1/'; private $baseURI = 'https://goat.local/p/goatcheese/api/v1/';
private $jwt_pubkey = '9sKjdjuue8sSjwh6'; private $jwt_pubkey = '9sKjdjuue8sSjwh6';
private $jwt_alg = ['HS256']; private $jwt_alg = ['HS256'];
private $client; private $client;
@ -21,12 +21,15 @@ class APIgoatFetchAPI
{ {
$this->client = new APIClient($this->baseURI); $this->client = new APIClient($this->baseURI);
$this->clientOptions = [ $this->clientOptions = [
'verify' => true, 'verify' => false,
'content-Type' => 'application/json', 'content-Type' => 'application/json',
'accept' => 'application/json', 'accept' => 'application/json',
'debug' => false 'debug' => false,
'timeout' => 10
]; ];
//unset($_SESSION['APIgoat']);
if (!$this->authenticationValid()) { if (!$this->authenticationValid()) {
$this->authenticate(); $this->authenticate();
$this->saveCredentials(); $this->saveCredentials();
@ -43,25 +46,20 @@ class APIgoatFetchAPI
$clientOptions['query'] = [ $clientOptions['query'] = [
"query" => [ "query" => [
"select" => [ "select" => [
["behavior.name", "name"], ["code", "title"], ["description", "text"], "value", "example", "type", ["behavior_category.name", "category_name"] ["behavior.name", "name"], ["code", "title"], ["description", "text"], "value", "example", "type", ["behavior_category.name", "category_name"], "group"
], ],
"filter" => [ "filter" => [
"behavior" => [ ["status", "Active"]
0 => ["group", "Free"],
1 => ["status", "Active"]
]
], ],
"join" => ["behavior_category"], "join" => ["behavior_category"]
"limit" => 20, ]
"recurse" => "behavior_file"
],
"debug" => true
]; ];
//$clientOptions['debug'] = true;
$response = $this->client->get('Behavior', $clientOptions); $response = $this->client->get('Behavior', $clientOptions);
$body = json_decode($response->getBody()->getContents(), true); $body = json_decode($response->getBody()->getContents(), true);
//$body['debug'][] = $clientOptions['query'];
if ($response->getStatusCode() == 200) { if ($response->getStatusCode() == 200) {
return $body; return $body;
} else { } else {
@ -87,7 +85,8 @@ class APIgoatFetchAPI
'u' => $this->username, 'u' => $this->username,
'pw' => md5($this->password) 'pw' => md5($this->password)
], ],
'debug' => false 'debug' => false,
'timeout' => 10
]; ];
// authenticate on API to get token // authenticate on API to get token
$response = $this->client->post('Authy/auth', $options); $response = $this->client->post('Authy/auth', $options);

View File

@ -1,6 +1,6 @@
<?php <?php
class APIgoatList class APIgoatListModifiers
{ {
static function init($atts, $content = null) static function init($atts, $content = null)

View File

@ -124,7 +124,7 @@ class apigoat_doc
*/ */
require_once plugin_dir_path(dirname(__FILE__)) . 'public/class-apigoat_doc-public.php'; require_once plugin_dir_path(dirname(__FILE__)) . 'public/class-apigoat_doc-public.php';
require plugin_dir_path(dirname(__FILE__)) . 'classes/APIgoatList.php'; require plugin_dir_path(dirname(__FILE__)) . 'classes/APIgoatListModifiers.php';
$this->loader = new apigoat_doc_Loader(); $this->loader = new apigoat_doc_Loader();
} }
@ -174,7 +174,8 @@ class apigoat_doc
$this->loader->add_action('init', $plugin_public, 'register_session', 1); $this->loader->add_action('init', $plugin_public, 'register_session', 1);
$this->loader->add_action('wp_enqueue_scripts', $plugin_public, 'enqueue_styles'); $this->loader->add_action('wp_enqueue_scripts', $plugin_public, 'enqueue_styles');
$this->loader->add_action('wp_enqueue_scripts', $plugin_public, 'enqueue_scripts'); $this->loader->add_action('wp_enqueue_scripts', $plugin_public, 'enqueue_scripts');
$this->loader->add_shortcode('APIgoat_list', $plugin_public, array('APIgoatList', 'init')); $this->loader->add_shortcode('APIgoat_list_modifiers', $plugin_public, array('APIgoatListModifiers', 'init'));
$this->loader->add_shortcode('APIgoat_list_examples', $plugin_public, array('APIgoatListExamples', 'init'));
} }
/** /**