Skip to content
This repository was archived by the owner on Jun 13, 2019. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ Currently, Rest Api supports the following HTTP verbs:

Example endpoints include:

* `GET http://example.com/api/Asset?id=44&include=transforms` returns an image asset with the id of 44 with all available image transformation urls and sizes
* `GET http://example.com/api/Entry?page=2&limit=10&order=postDate asc`__ returns the second page of a paginated listing of 10 Entry elements, ordered by the `postDate` attribute in ascending order
* `GET http://example.com/api/Entry/2` returns the entry with the element id of 2
* `POST http://example.com/api/Entry` creates a new Entry element
Expand Down
40 changes: 36 additions & 4 deletions src/Transformers/AssetFileTransformer.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,17 @@

class AssetFileTransformer extends BaseTransformer
{
/**
* Constructor
*/
public function __construct()
{
$this->availableIncludes = array_merge($this->availableIncludes, [
'transforms',
]);
}


/**
* Transform
*
Expand All @@ -22,22 +33,43 @@ public function transform(AssetFileModel $element)
'locale' => $element->locale,
'localeEnabled' => (bool) $element->localeEnabled,
'slug' => $element->slug,
'uri' => $element->uri,
'url' => $element->getUrl(),
'dateCreated' => $element->dateCreated,
'dateUpdated' => $element->dateUpdated,
'root' => ($element->root) ? (int) $element->root : null,
'lft' => ($element->lft) ? (int) $element->lft : null,
'rgt' => ($element->rgt) ? (int) $element->rgt : null,
'level' => ($element->level) ? (int) $element->level : null,
'sourceId' => (int) $element->folderId,
'folderId' => (int) $element->filename,
'sourceId' => (int) $element->sourceId,
'folderId' => (int) $element->folderId,
'originalName' => $element->originalName,
'fileName' => $element->filename,
'extension' => $element->extension,
'mimeType' => $element->mimeType,
'kind' => $element->kind,
'width' => (int) $element->width,
'height' => (int) $element->height,
'size' => (int) $element->size,
'dateModified' => $element->dateModified,
'dateModified' => $element->dateModified
];
}


/**
* Include Type
*
* @param AssetFileModel $element Asset
*
* @return array Asset
*/
public function includeTransforms(AssetFileModel $element)
{
$imgTag = $element->getImg();

if ($imgTag) {
return $this->item($element, new ImgTransformsTransformer);
}
}


}
30 changes: 30 additions & 0 deletions src/Transformers/ImgTransformsTransformer.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<?php

namespace RestfulApi\Transformers;

use Craft\AssetFileModel;

class ImgTransformsTransformer extends BaseTransformer
{
/**
* Transform
*
* @param AssetFileModel $element Asset
*
* @return array Asset
*/
public function transform(AssetFileModel $element)
{
$transforms = \Craft\craft()->assetTransforms->allTransforms;
$toReturn = [];

foreach($transforms as $transform){
$handle = $transform->handle;
$toReturn[$handle]['url'] = $element->getUrl($handle);
$toReturn[$handle]['width'] = $element->getWidth($handle);
$toReturn[$handle]['height'] = $element->getHeight($handle);
}

return $toReturn;
}
}