mirror of
https://github.com/brunofontes/Memsource-API.git
synced 2025-11-17 02:30:54 -03:00
More tests and a small refactoring
This commit is contained in:
83
index.php
83
index.php
@@ -5,21 +5,17 @@ if (!isset($_SESSION['token'])) {
|
||||
header('Location: /oauth.php');
|
||||
}
|
||||
|
||||
define('BASE_URL', 'https://cloud.memsource.com/web');
|
||||
define('BASE_URL', parse_ini_file('config.ini')['base_url']);
|
||||
|
||||
print_r(listProjects()); die();
|
||||
// print_r(getProject('dOVoecVbGYq85VwGYkJgY0')); die();
|
||||
// print_r(listProjects()); die();
|
||||
print_r(getProject('dOVoecVbGYq85VwGYkJgY0')); die();
|
||||
// print_r(listJobs('dOVoecVbGYq85VwGYkJgY0')); die();
|
||||
downloadBilingualFiles('dOVoecVbGYq85VwGYkJgY0', ['tRJYN7LHPmaS8BVL3Vx8p2', 'DJbSRDTC7Jo004AvIb1V1M'], 'download.mxliff');
|
||||
die();
|
||||
|
||||
$resource = getResource($_SESSION['token']);
|
||||
print_r($resource); die();
|
||||
|
||||
echo "<br>\nuserName: {$resource['user']['userName']}";
|
||||
echo "<br>\nName: {$resource['user']['firstName']}";
|
||||
echo "<br>\nLast name: {$resource['user']['lastName']}";
|
||||
echo "<br>\nEmail: {$resource['user']['email']}";
|
||||
echo "<br>\nEdition: {$resource['edition']['name']}";
|
||||
echo "<br>\nOrganization: {$resource['organization']['name']}";
|
||||
|
||||
function listProjects()
|
||||
{
|
||||
$url = '/api2/v1/projects';
|
||||
@@ -41,22 +37,31 @@ function listProjects()
|
||||
|
||||
function getProject(string $projectUid)
|
||||
{
|
||||
$url = '/api2/v1/projects/'.$projectUid;
|
||||
$url = '/api2/v1/projects/' . $projectUid;
|
||||
return apiGet($_SESSION['token'], $url);
|
||||
}
|
||||
|
||||
function listJobs(string $projectUid)
|
||||
{
|
||||
$url = '/api2/v1/projects/'.$projectUid.'/jobs/';
|
||||
$url = '/api2/v1/projects/' . $projectUid . '/jobs/';
|
||||
return apiGet($_SESSION['token'], $url);
|
||||
}
|
||||
|
||||
function downloadBilingualFiles(string $projectUid, array $jobsUid, string $filename)
|
||||
{
|
||||
$url = '/api2/v1/projects/'.$projectUid.'/jobs/bilingualFile?format=MXLF';
|
||||
foreach ($jobsUid as $key => $jobUid) {
|
||||
$postFields[] = ['uid' => $jobUid];
|
||||
}
|
||||
return apiDownloadFile($_SESSION['token'], $url, ['jobs' => $postFields], $filename);
|
||||
}
|
||||
|
||||
// we can now use the access_token as much as we want to access protected resources
|
||||
function apiGet(string $access_token, string $url)
|
||||
{
|
||||
$curl = curl_init();
|
||||
curl_setopt_array(
|
||||
$curl,
|
||||
$curl,
|
||||
[
|
||||
CURLOPT_URL => BASE_URL . $url,
|
||||
CURLOPT_HTTPHEADER => ["Authorization: Bearer {$access_token}"],
|
||||
@@ -69,46 +74,44 @@ function apiGet(string $access_token, string $url)
|
||||
return json_decode($response, true);
|
||||
}
|
||||
|
||||
function apiJsonPost(string $access_token, string $url, array $postFields)
|
||||
function apiJsonPost(string $access_token, string $url, array $postFields, array $extraHeader = [])
|
||||
{
|
||||
$header = array_merge(
|
||||
["Authorization: Bearer {$access_token}", 'Content-type: application/json'],
|
||||
$extraHeader
|
||||
);
|
||||
$curl = curl_init();
|
||||
curl_setopt_array($curl, [
|
||||
CURLOPT_URL => BASE_URL . $url,
|
||||
CURLOPT_HTTPHEADER => ["Authorization: Bearer {$access_token}", "Content-type: application/json"],
|
||||
CURLOPT_SSL_VERIFYPEER => false,
|
||||
CURLOPT_POST => true,
|
||||
CURLOPT_POSTFIELDS => json_encode($postFields),
|
||||
CURLOPT_RETURNTRANSFER => true
|
||||
]);
|
||||
curl_setopt_array(
|
||||
$curl,
|
||||
[
|
||||
CURLOPT_URL => BASE_URL . $url,
|
||||
CURLOPT_HTTPHEADER => $header,
|
||||
CURLOPT_SSL_VERIFYPEER => false,
|
||||
CURLOPT_POST => true,
|
||||
CURLOPT_POSTFIELDS => json_encode($postFields),
|
||||
CURLOPT_RETURNTRANSFER => true
|
||||
]
|
||||
);
|
||||
$response = curl_exec($curl);
|
||||
curl_close($curl);
|
||||
return json_decode($response, true);
|
||||
}
|
||||
|
||||
function getResource($access_token)
|
||||
function apiDownloadFile($access_token, string $url, array $postFields, string $filename)
|
||||
{
|
||||
//$test_api_url = 'https://cloud.memsource.com/web/api2/v1/auth/whoAmI';
|
||||
//$test_api_url = 'https://cloud.memsource.com/web/api2/v1/projects';
|
||||
// $test_api_url = 'https://cloud.memsource.com/web/api2/v1/projects/dOVoecVbGYq85VwGYkJgY0';
|
||||
// $test_api_url = 'https://cloud.memsource.com/web/api2/v2/projects/dOVoecVbGYq85VwGYkJgY0/jobs';
|
||||
$test_api_url = 'https://cloud.memsource.com/web/api2/v1/projects/dOVoecVbGYq85VwGYkJgY0/jobs/bilingualFile';
|
||||
$array_content = ['jobs' => [['uid' => 'tRJYN7LHPmaS8BVL3Vx8p2']]];
|
||||
$content = json_encode($array_content);
|
||||
|
||||
$header = ["Authorization: Bearer {$access_token}", "Content-type: application/json"];
|
||||
|
||||
$file = fopen($filename, 'w+');
|
||||
$curl = curl_init();
|
||||
curl_setopt_array($curl, [
|
||||
CURLOPT_URL => $test_api_url,
|
||||
CURLOPT_HTTPHEADER => $header,
|
||||
CURLOPT_URL => BASE_URL . $url,
|
||||
CURLOPT_HTTPHEADER => ["Authorization: Bearer {$access_token}", 'Content-type: application/json'],
|
||||
CURLOPT_SSL_VERIFYPEER => false,
|
||||
// CURLOPT_CUSTOMREQUEST => 'DELETE', // <-- This is how to send a DELETE request
|
||||
CURLOPT_TIMEOUT => 500,
|
||||
CURLOPT_FILE => $file,
|
||||
CURLOPT_FOLLOWLOCATION => true,
|
||||
CURLOPT_POST => true,
|
||||
CURLOPT_POSTFIELDS => $content,
|
||||
CURLOPT_RETURNTRANSFER => true
|
||||
CURLOPT_POSTFIELDS => json_encode($postFields)
|
||||
]);
|
||||
$response = curl_exec($curl);
|
||||
curl_close($curl);
|
||||
|
||||
return json_decode($response, true);
|
||||
return $response;
|
||||
}
|
||||
Reference in New Issue
Block a user