-
Notifications
You must be signed in to change notification settings - Fork 0
/
ApiWrapper.php
71 lines (64 loc) · 2.29 KB
/
ApiWrapper.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php
class ApiWrapper
{
private $organism;
private $token;
public function __construct($config)
{
$this->organism = $config->organismUrl;
$this->initToken($config->clientId, $config->clientSecret);
}
private function initToken($clientId, $clientSecret)
{
$request = new HTTP_Request2();
$request->setUrl('https://api.helloasso.com/oauth2/token');
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setHeader(array(
'Content-Type' => 'application/x-www-form-urlencoded',
));
$request->addPostParameter(array(
'grant_type' => 'client_credentials',
'client_id' => $clientId,
'client_secret' => $clientSecret
));
try
{
$response = $request->send();
if ($response->getStatus() == 200) {
$this->token = json_decode($response->getBody());
}
else {
echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' . $response->getReasonPhrase();
}
}
catch(HTTP_Request2_Exception $e)
{
echo 'Error: ' . $e->getMessage();
}
}
public function getForms()
{
$request = new HTTP_Request2();
$request->setUrl('https://api.helloasso.com/v5/organizations/' . $this->organism . '/forms?pageIndex=1&pageSize=20');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setHeader(array(
'authorization' => 'Bearer ' . $this->token->access_token,
));
try
{
$response = $request->send();
if ($response->getStatus() == 200) {
return json_decode($response->getBody())->data;
}
else {
echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
$response->getReasonPhrase();
}
}
catch(HTTP_Request2_Exception $e)
{
echo 'Error: ' . $e->getMessage();
}
}
}
?>