File "CuratedAPIAjaxController.php"
Full path: C:/Inetpub/vhosts/drshti.com/httpdocs/wp-content/plugins/depicter/app/src/CuratedAPIAjaxController.php
File
size: 11.07 B (11.07 KB bytes)
MIME-type: text/x-php
Charset: utf-8
Download Open Edit Advanced Editor &nnbsp; Back
<?php
namespace Depicter\Controllers\Ajax;
use Averta\WordPress\Utility\JSON;
use Depicter\Document\Mapper;
use Depicter\GuzzleHttp\Exception\GuzzleException;
use Depicter\Services\AssetsAPIService;
use Depicter\Utility\Http;
use Depicter\Utility\Sanitize;
use Psr\Http\Message\RequestInterface;
use Psr\Http\Message\ResponseInterface;
class CuratedAPIAjaxController
{
/**
* Search Elements
*
* @param RequestInterface $request
* @param string $view
*
* @return ResponseInterface
* @throws GuzzleException
*/
public function searchElements( RequestInterface $request, $view )
{
$page = !empty( $request->query('page' ) ) ? Sanitize::int( $request->query('page') ) : 1;
$perpage = !empty( $request->query('perpage' ) ) ? Sanitize::int( $request->query('perpage') ) : 20;
$category = !empty( $request->query('category') ) ? Sanitize::textfield( $request->query('category') ) : '';
$search = !empty( $request->query('s' ) ) ? Sanitize::textfield( $request->query('s') ) : '';
$options = [
'page' => $page,
'perpage' => $perpage,
'category' => $category,
's' => $search
];
try {
return \Depicter::json( AssetsAPIService::searchElements( $options ) );
} catch ( \Exception $exception ) {
$error = Http::getErrorExceptionResponse( $exception );
return \Depicter::json([
'errors' => $error
])->withStatus( $error['statusCode'] );
}
}
/**
* search Document Templates
*
* @param RequestInterface $request
* @param string $view
*
* @return ResponseInterface
* @throws GuzzleException
*/
public function searchDocumentTemplates( RequestInterface $request, $view )
{
$page = !empty( $request->query('page') ) ? Sanitize::int( $request->query('page') ) : 1;
$perpage = !empty( $request->query('perpage') ) ? Sanitize::int( $request->query('perpage') ) : 20;
$category = !empty( $request->query('category') ) ? Sanitize::textfield( $request->query('category') ) : '';
$search = !empty( $request->query('s') ) ? Sanitize::textfield( $request->query('s') ) : '';
$version = !empty( $request->query('v') ) ? Sanitize::textfield( $request->query('v') ) : '1';
$from = !empty( $request->query('from') ) ? Sanitize::textfield( $request->query('from') ) : 'website';
$directory= !empty( $request->query('directory') ) ? Sanitize::textfield( $request->query('directory') ) : 2;
$options = [
'page' => $page,
'perpage' => $perpage,
'category' => $category,
's' => $search,
'v' => $version,
'from' => $from,
'directory' => $directory
];
try {
$result = AssetsAPIService::searchDocumentTemplates( $options );
if ( $directory == 4 ) {
shuffle( $result['hits'] );
}
return \Depicter::json( $result );
} catch ( \Exception $exception ) {
$error = Http::getErrorExceptionResponse( $exception );
return \Depicter::json([
'errors' => $error
])->withStatus( $error['statusCode'] );
}
}
/**
* search Document Templates
*
* @param RequestInterface $request
* @param string $view
*
* @return ResponseInterface
* @throws GuzzleException
*/
public function searchDocumentTemplatesV2( RequestInterface $request, $view )
{
$page = !empty( $request->query('page') ) ? Sanitize::int( $request->query('page') ) : 1;
$perpage = !empty( $request->query('perpage') ) ? Sanitize::int( $request->query('perpage') ) : 20;
$group = !empty( $request->query('group') ) ? Sanitize::textfield( $request->query('group') ) : '';
$search = !empty( $request->query('s') ) ? Sanitize::textfield( $request->query('s') ) : '';
$version = !empty( $request->query('v') ) ? Sanitize::textfield( $request->query('v') ) : '1';
$from = !empty( $request->query('from') ) ? Sanitize::textfield( $request->query('from') ) : 'website';
$directory= !empty( $request->query('directory') ) ? Sanitize::textfield( $request->query('directory') ) : 2;
$flush = !empty( $request->query('flush') );
$options = [
'page' => $page,
'perpage' => $perpage,
'group' => $group,
's' => $search,
'v' => $version,
'from' => $from,
'flush' => $flush,
'directory' => $directory
];
try {
return \Depicter::json( AssetsAPIService::searchDocumentTemplatesV2( $options ) );
} catch ( \Exception $exception ) {
$error = Http::getErrorExceptionResponse( $exception );
return \Depicter::json([
'errors' => $error
])->withStatus( $error['statusCode'] );
}
}
public function getDocumentTemplateCategories( RequestInterface $request, $view )
{
$category = !empty( $request->query('category') ) ? Sanitize::textfield( $request->query('category') ) : '';
$directory = !empty( $request->query('directory') ) ? Sanitize::textfield( $request->query('directory') ) : 2;
$options = [
'category' => $category,
'directory' => $directory
];
try {
return \Depicter::json( AssetsAPIService::getDocumentTemplateCategories( $options ) );
} catch ( \Exception $exception ) {
$error = Http::getErrorExceptionResponse( $exception );
return \Depicter::json([
'errors' => $error
])->withStatus( $error['statusCode'] );
}
}
public function getDocumentTemplateGroups( RequestInterface $request, $view )
{
$group = !empty( $request->query('group') ) ? Sanitize::textfield( $request->query('group') ) : '';
$directory = !empty( $request->query('directory') ) ? Sanitize::textfield( $request->query('directory') ) : 2;
$featured = !empty( $request->query('featured') );
$options = [
'group' => $group,
'featured' => $featured,
'directory' => $directory
];
try {
return \Depicter::json( AssetsAPIService::getDocumentTemplateGroups( $options ) );
} catch ( \Exception $exception ) {
$error = Http::getErrorExceptionResponse( $exception );
return \Depicter::json([
'errors' => $error
])->withStatus( $error['statusCode'] );
}
}
/**
* Imports a template
*
* @param RequestInterface $request
* @param $view
*
* @return ResponseInterface
* @throws GuzzleException
*/
public function importDocumentTemplate( RequestInterface $request, $view ) {
$templateID = !empty( $request->query('ID') ) ? Sanitize::textfield( $request->query('ID') ) : '';
$endpointVersion = !empty( $request->query('v') ) ? Sanitize::int( $request->query('v') ) : 1;
$directory = !empty( $request->query('directory') ) ? Sanitize::textfield( $request->query('directory') ) : 2;
try {
$result = AssetsAPIService::getDocumentTemplateData( $templateID, [ 'v' => $endpointVersion, 'directory' => $directory ] );
if ( !empty( $result->errors ) ) {
return Http::getErrorJson( $result->errors );
} elseif ( !empty( $result->hits ) ) {
$editorData = JSON::encode( $result->hits );
$editorData = preg_replace( '/"activeBreakpoint":".+?"/', '"activeBreakpoint":"default"', $editorData );
$document = \Depicter::documentRepository()->create();
$updateData = ['content' => $editorData ];
if ( !empty( $result->title ) ) {
$updateData['name'] = $result->title . ' ' . $document->getID();
}
if ( !empty( $result->type ) ) {
$updateData['type'] = $result->type;
}
if ( !empty( $result->image ) ) {
$imageRequest = wp_remote_get( $result->image );
$previewImage = wp_remote_retrieve_body( $imageRequest );
\Depicter::storage()->filesystem()->write( \Depicter::documentRepository()->getPreviewImagePath( $document->getID() ) , $previewImage );
}
\Depicter::documentRepository()->update( $document->getID(), $updateData );
\Depicter::media()->importDocumentAssets( $editorData );
if ( \Depicter::options()->get('use_google_fonts', 'on') === 'save_locally' ) {
$documentModel = \Depicter::document()->getModel( $document->getID() )->prepare();
\Depicter::googleFontsService()->download( $documentModel->getFontsLink() );
}
return \Depicter::json([
'hits' => [
'documentID' => $document->getID()
]
]);
} else {
// Return the error message received from server
return \Depicter::json( $result );
}
} catch ( \Exception $exception ) {
$error = Http::getErrorExceptionResponse( $exception );
return \Depicter::json([
'errors' => $error
])->withStatus( $error['statusCode'] );
}
}
/**
* @param RequestInterface $request
* @param $view
*
* @return ResponseInterface
* @throws GuzzleException
*/
public function previewDocumentTemplate( RequestInterface $request, $view ) {
$templateID = !empty( $request->query('ID') ) ? Sanitize::textfield( $request->query('ID') ) : '';
$directory = !empty( $request->query('directory') ) ? Sanitize::textfield( $request->query('directory') ) : 2;
try {
$result = AssetsAPIService::previewDocumentTemplate( $templateID, $directory );
return \Depicter::output( $result );
} catch ( \Exception $exception ) {
$error = Http::getErrorExceptionResponse( $exception );
return \Depicter::json([
'errors' => $error
])->withStatus( $error['statusCode'] );
}
}
/**
* Search in Animations
*
* @param RequestInterface $request
* @param string $view
*
* @return ResponseInterface
* @throws GuzzleException
*/
public function searchAnimations( RequestInterface $request, $view ){
$page = !empty( $request->query('page') ) ? Sanitize::int( $request->query('page') ) : 1;
$perpage = !empty( $request->query('perpage') ) ? Sanitize::int( $request->query('perpage') ) : 20;
$phase = !empty( $request->query('phase') ) ? Sanitize::textfield( $request->query('phase') ) : '';
$search = !empty( $request->query('s' ) ) ? Sanitize::textfield( $request->query('s') ) : '';
$category = !empty( $request->query('category' ) ) ? Sanitize::textfield( $request->query('category') ) : '';
$options = [
'page' => $page,
'perpage' => $perpage,
'phase' => $phase,
's' => $search,
'category' => $category
];
try {
return \Depicter::json( AssetsAPIService::searchAnimations( $options ) );
} catch ( \Exception $exception ) {
$error = Http::getErrorExceptionResponse( $exception );
return \Depicter::json([
'errors' => $error
])->withStatus( $error['statusCode'] );
}
}
/**
* Get list of animation categories
*
* @param RequestInterface $request
* @param $view
*
* @return ResponseInterface
* @throws GuzzleException
*/
public function getAnimationsCategories( RequestInterface $request, $view )
{
$phase = !empty( $request->query('phase') ) ? Sanitize::textfield( $request->query('phase') ) : '';
$options = [ 'phase' => $phase ];
if( !empty( $request->query('elementType') ) ){
$options['elementType'] = Sanitize::textfield( $request->query('elementType') );
}
try {
$result = AssetsAPIService::getAnimationsCategories( $options );
if ( !empty( $result['errors'] ) ) {
return Http::getErrorJson( $result['errors'] );
} else {
return \Depicter::json( $result );
}
} catch ( \Exception $exception ) {
$error = Http::getErrorExceptionResponse( $exception );
return \Depicter::json([
'errors' => $error
])->withStatus( $error['statusCode'] );
}
}
}