plexorganizrnginxsonarrradarrdashboardcouchpotatonzbgetbookmarkapplication-dashboardmuximuxlandingpagestartpagelandinghtpcserverhomepagesabnzbdheimdallemby
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
962 B
47 lines
962 B
<?php
|
|
|
|
namespace Github\Api;
|
|
|
|
/**
|
|
* GraphQL API.
|
|
*
|
|
* Part of the Github v4 API
|
|
*
|
|
* @link https://developer.github.com/v4/
|
|
*
|
|
* @author Miguel Piedrafita <soy@miguelpiedrafita.com>
|
|
*/
|
|
class GraphQL extends AbstractApi
|
|
{
|
|
use AcceptHeaderTrait;
|
|
|
|
/**
|
|
* @param string $query
|
|
* @param array $variables
|
|
*
|
|
* @return array
|
|
*/
|
|
public function execute($query, array $variables = [])
|
|
{
|
|
$this->acceptHeaderValue = 'application/vnd.github.v4+json';
|
|
$params = [
|
|
'query' => $query,
|
|
];
|
|
if (!empty($variables)) {
|
|
$params['variables'] = json_encode($variables);
|
|
}
|
|
|
|
return $this->post('/graphql', $params);
|
|
}
|
|
|
|
/**
|
|
* @param string $file
|
|
* @param array $variables
|
|
*
|
|
* @return array
|
|
*/
|
|
public function fromFile($file, array $variables = [])
|
|
{
|
|
return $this->execute(file_get_contents($file), $variables);
|
|
}
|
|
}
|
|
|