collection = dirname(__FILE__).'/representations/collection';
}
/**
* Handle a GET request
* @param Request request
* @return Response
*/
function get($request) {
$response = new Response($request);
$collection = str_replace('/', DIRECTORY_SEPARATOR, $this->collection);
$resourceUris = '';
$files = glob($collection.DIRECTORY_SEPARATOR.'*');
if ($files) {
foreach ($files as $filepath) {
$filepath = str_replace(DIRECTORY_SEPARATOR, '/', $filepath);
$resourceUris .= '
'.basename($filepath).'';
}
} else {
$resourceUris .= 'Empty collection';
}
$response->body = '';
return $response;
}
protected function getNextAvailableItemUri() {
$collection = str_replace('/', DIRECTORY_SEPARATOR, $this->collection);
$filename = 1;
while (file_exists($collection.DIRECTORY_SEPARATOR.$filename)) {
++$filename;
}
return $this->uriStub.substr($this->collection, strlen($this->path)).'/'.$filename;
}
function post($request) {
$response = new Response($request);
if ($request->data) {
$uri = $this->getNextAvailableItemUri();
$filePath = $this->turnUriIntoFilePath($uri, $request);
if (file_put_contents($filePath, $request->data)) {
$response->code = Response::CREATED;
$response->addHeader('Location', $uri);
} else {
$response->code = Response::INTERNALSERVERERROR;
}
} else {
$response->code = Response::LENGTHREQUIRED;
}
return $response;
}
}