digitaldemocratic/docker/nextcloud/custom_apps/ownpad/3rdparty/tomnomnom/etherpad-lite-client/etherpad-lite-client.php

574 lines
13 KiB
PHP
Executable File

<?php
// The following code is automatically generated by ./tools/generate.php
// please edit the files in ./tools/templates/ instead of editing this
// file directly.
class EtherpadLiteClient {
const API_VERSION = '1.2.11';
const CODE_OK = 0;
const CODE_INVALID_PARAMETERS = 1;
const CODE_INTERNAL_ERROR = 2;
const CODE_INVALID_FUNCTION = 3;
const CODE_INVALID_API_KEY = 4;
protected $apiKey = "";
protected $baseUrl = "http://localhost:9001/api";
public function __construct($apiKey, $baseUrl = null){
if (strlen($apiKey) < 1){
throw new InvalidArgumentException("[{$apiKey}] is not a valid API key");
}
$this->apiKey = $apiKey;
if (isset($baseUrl)){
$this->baseUrl = $baseUrl;
}
if (!filter_var($this->baseUrl, FILTER_VALIDATE_URL)){
throw new InvalidArgumentException("[{$this->baseUrl}] is not a valid URL");
}
}
protected function get($function, array $arguments = array()){
return $this->call($function, $arguments, 'GET');
}
protected function post($function, array $arguments = array()){
return $this->call($function, $arguments, 'POST');
}
protected function convertBools($candidate){
if (is_bool($candidate)){
return $candidate? "true" : "false";
}
return $candidate;
}
protected function call($function, array $arguments = array(), $method = 'GET'){
$arguments['apikey'] = $this->apiKey;
$arguments = array_map(array($this, 'convertBools'), $arguments);
$arguments = http_build_query($arguments, '', '&');
$url = $this->baseUrl."/".self::API_VERSION."/".$function;
if ($method !== 'POST'){
$url .= "?".$arguments;
}
// use curl of it's available
if (function_exists('curl_init')){
$c = curl_init($url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_TIMEOUT, 20);
if ($method === 'POST'){
curl_setopt($c, CURLOPT_POST, true);
curl_setopt($c, CURLOPT_POSTFIELDS, $arguments);
}
$result = curl_exec($c);
curl_close($c);
// fallback to plain php
} else {
$params = array('http' => array('method' => $method, 'ignore_errors' => true, 'header' => 'Content-Type:application/x-www-form-urlencoded'));
if ($method === 'POST'){
$params['http']['content'] = $arguments;
}
$context = stream_context_create($params);
$fp = fopen($url, 'rb', false, $context);
$result = $fp ? stream_get_contents($fp) : null;
}
if(!$result){
throw new UnexpectedValueException("Empty or No Response from the server");
}
$result = json_decode($result);
if ($result === null){
throw new UnexpectedValueException("JSON response could not be decoded");
}
return $this->handleResult($result);
}
protected function handleResult($result){
if (!isset($result->code)){
throw new RuntimeException("API response has no code");
}
if (!isset($result->message)){
throw new RuntimeException("API response has no message");
}
if (!isset($result->data)){
$result->data = null;
}
switch ($result->code){
case self::CODE_OK:
return $result->data;
case self::CODE_INVALID_PARAMETERS:
case self::CODE_INVALID_API_KEY:
throw new InvalidArgumentException($result->message);
case self::CODE_INTERNAL_ERROR:
throw new RuntimeException($result->message);
case self::CODE_INVALID_FUNCTION:
throw new BadFunctionCallException($result->message);
default:
throw new RuntimeException("An unexpected error occurred whilst handling the response");
}
}
// createGroup
public function createGroup(){
$params = array();
return $this->post("createGroup", $params);
}
// createGroupIfNotExistsFor
public function createGroupIfNotExistsFor($groupMapper){
$params = array();
$params['groupMapper'] = $groupMapper;
return $this->post("createGroupIfNotExistsFor", $params);
}
// deleteGroup
public function deleteGroup($groupID){
$params = array();
$params['groupID'] = $groupID;
return $this->post("deleteGroup", $params);
}
// listPads
public function listPads($groupID){
$params = array();
$params['groupID'] = $groupID;
return $this->get("listPads", $params);
}
// listAllPads
public function listAllPads(){
$params = array();
return $this->get("listAllPads", $params);
}
// createDiffHTML
public function createDiffHTML($padID, $startRev, $endRev){
$params = array();
$params['padID'] = $padID;
$params['startRev'] = $startRev;
$params['endRev'] = $endRev;
return $this->post("createDiffHTML", $params);
}
// createPad
public function createPad($padID, $text = null){
$params = array();
$params['padID'] = $padID;
if (isset($text)){
$params['text'] = $text;
}
return $this->post("createPad", $params);
}
// createGroupPad
public function createGroupPad($groupID, $padName, $text = null){
$params = array();
$params['groupID'] = $groupID;
$params['padName'] = $padName;
if (isset($text)){
$params['text'] = $text;
}
return $this->post("createGroupPad", $params);
}
// createAuthor
public function createAuthor($name = null){
$params = array();
if (isset($name)){
$params['name'] = $name;
}
return $this->post("createAuthor", $params);
}
// createAuthorIfNotExistsFor
public function createAuthorIfNotExistsFor($authorMapper, $name = null){
$params = array();
$params['authorMapper'] = $authorMapper;
if (isset($name)){
$params['name'] = $name;
}
return $this->post("createAuthorIfNotExistsFor", $params);
}
// listPadsOfAuthor
public function listPadsOfAuthor($authorID){
$params = array();
$params['authorID'] = $authorID;
return $this->get("listPadsOfAuthor", $params);
}
// createSession
public function createSession($groupID, $authorID, $validUntil){
$params = array();
$params['groupID'] = $groupID;
$params['authorID'] = $authorID;
$params['validUntil'] = $validUntil;
return $this->post("createSession", $params);
}
// deleteSession
public function deleteSession($sessionID){
$params = array();
$params['sessionID'] = $sessionID;
return $this->post("deleteSession", $params);
}
// getSessionInfo
public function getSessionInfo($sessionID){
$params = array();
$params['sessionID'] = $sessionID;
return $this->get("getSessionInfo", $params);
}
// listSessionsOfGroup
public function listSessionsOfGroup($groupID){
$params = array();
$params['groupID'] = $groupID;
return $this->get("listSessionsOfGroup", $params);
}
// listSessionsOfAuthor
public function listSessionsOfAuthor($authorID){
$params = array();
$params['authorID'] = $authorID;
return $this->get("listSessionsOfAuthor", $params);
}
// getText
public function getText($padID, $rev = null){
$params = array();
$params['padID'] = $padID;
if (isset($rev)){
$params['rev'] = $rev;
}
return $this->get("getText", $params);
}
// setText
public function setText($padID, $text){
$params = array();
$params['padID'] = $padID;
$params['text'] = $text;
return $this->post("setText", $params);
}
// getHTML
public function getHTML($padID, $rev = null){
$params = array();
$params['padID'] = $padID;
if (isset($rev)){
$params['rev'] = $rev;
}
return $this->get("getHTML", $params);
}
// setHTML
public function setHTML($padID, $html){
$params = array();
$params['padID'] = $padID;
$params['html'] = $html;
return $this->post("setHTML", $params);
}
// getAttributePool
public function getAttributePool($padID){
$params = array();
$params['padID'] = $padID;
return $this->get("getAttributePool", $params);
}
// getRevisionsCount
public function getRevisionsCount($padID){
$params = array();
$params['padID'] = $padID;
return $this->get("getRevisionsCount", $params);
}
// getSavedRevisionsCount
public function getSavedRevisionsCount($padID){
$params = array();
$params['padID'] = $padID;
return $this->get("getSavedRevisionsCount", $params);
}
// listSavedRevisions
public function listSavedRevisions($padID){
$params = array();
$params['padID'] = $padID;
return $this->get("listSavedRevisions", $params);
}
// saveRevision
public function saveRevision($padID, $rev){
$params = array();
$params['padID'] = $padID;
$params['rev'] = $rev;
return $this->post("saveRevision", $params);
}
// getRevisionChangeset
public function getRevisionChangeset($padID, $rev = null){
$params = array();
$params['padID'] = $padID;
if (isset($rev)){
$params['rev'] = $rev;
}
return $this->get("getRevisionChangeset", $params);
}
// getLastEdited
public function getLastEdited($padID){
$params = array();
$params['padID'] = $padID;
return $this->get("getLastEdited", $params);
}
// deletePad
public function deletePad($padID){
$params = array();
$params['padID'] = $padID;
return $this->post("deletePad", $params);
}
// copyPad
public function copyPad($sourceID, $destinationID, $force = null){
$params = array();
$params['sourceID'] = $sourceID;
$params['destinationID'] = $destinationID;
if (isset($force)){
$params['force'] = $force;
}
return $this->post("copyPad", $params);
}
// movePad
public function movePad($sourceID, $destinationID, $force = null){
$params = array();
$params['sourceID'] = $sourceID;
$params['destinationID'] = $destinationID;
if (isset($force)){
$params['force'] = $force;
}
return $this->post("movePad", $params);
}
// getReadOnlyID
public function getReadOnlyID($padID){
$params = array();
$params['padID'] = $padID;
return $this->get("getReadOnlyID", $params);
}
// getPadID
public function getPadID($roID){
$params = array();
$params['roID'] = $roID;
return $this->get("getPadID", $params);
}
// setPublicStatus
public function setPublicStatus($padID, $publicStatus){
$params = array();
$params['padID'] = $padID;
$params['publicStatus'] = $publicStatus;
return $this->post("setPublicStatus", $params);
}
// getPublicStatus
public function getPublicStatus($padID){
$params = array();
$params['padID'] = $padID;
return $this->get("getPublicStatus", $params);
}
// setPassword
public function setPassword($padID, $password){
$params = array();
$params['padID'] = $padID;
$params['password'] = $password;
return $this->post("setPassword", $params);
}
// isPasswordProtected
public function isPasswordProtected($padID){
$params = array();
$params['padID'] = $padID;
return $this->get("isPasswordProtected", $params);
}
// listAuthorsOfPad
public function listAuthorsOfPad($padID){
$params = array();
$params['padID'] = $padID;
return $this->get("listAuthorsOfPad", $params);
}
// padUsersCount
public function padUsersCount($padID){
$params = array();
$params['padID'] = $padID;
return $this->get("padUsersCount", $params);
}
// getAuthorName
public function getAuthorName($authorID){
$params = array();
$params['authorID'] = $authorID;
return $this->get("getAuthorName", $params);
}
// padUsers
public function padUsers($padID){
$params = array();
$params['padID'] = $padID;
return $this->get("padUsers", $params);
}
// sendClientsMessage
public function sendClientsMessage($padID, $msg){
$params = array();
$params['padID'] = $padID;
$params['msg'] = $msg;
return $this->post("sendClientsMessage", $params);
}
// listAllGroups
public function listAllGroups(){
$params = array();
return $this->get("listAllGroups", $params);
}
// checkToken
public function checkToken(){
$params = array();
return $this->post("checkToken", $params);
}
// getChatHistory
public function getChatHistory($padID, $start = null, $end = null){
$params = array();
$params['padID'] = $padID;
if (isset($start)){
$params['start'] = $start;
}
if (isset($end)){
$params['end'] = $end;
}
return $this->get("getChatHistory", $params);
}
// getChatHead
public function getChatHead($padID){
$params = array();
$params['padID'] = $padID;
return $this->get("getChatHead", $params);
}
// restoreRevision
public function restoreRevision($padID, $rev){
$params = array();
$params['padID'] = $padID;
$params['rev'] = $rev;
return $this->post("restoreRevision", $params);
}
}