first commit
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
<?php
|
||||
|
||||
namespace WPML\ST\Rest\MO;
|
||||
|
||||
use WPML\ST\TranslationFile\QueueFilter;
|
||||
use WPML_ST_Translations_File_Queue;
|
||||
|
||||
class Import extends \WPML\ST\Rest\Base {
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
function get_routes() {
|
||||
return [
|
||||
[
|
||||
'route' => 'import_mo_strings',
|
||||
'args' => [
|
||||
'methods' => 'POST',
|
||||
'callback' => [ $this, 'import' ],
|
||||
'args' => [
|
||||
'plugins' => [
|
||||
'type' => 'array',
|
||||
],
|
||||
'themes' => [
|
||||
'type' => 'array',
|
||||
],
|
||||
'other' => [
|
||||
'type' => 'array',
|
||||
],
|
||||
]
|
||||
]
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \WP_REST_Request $request
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
function get_allowed_capabilities( \WP_REST_Request $request ) {
|
||||
return [ 'manage_options' ];
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
* @throws \WPML\Auryn\InjectionException
|
||||
*/
|
||||
public function import( \WP_REST_Request $request ) {
|
||||
/** @var WPML_ST_Translations_File_Queue $queue */
|
||||
|
||||
$queue = \WPML\Container\make( \WPML_ST_Translations_File_Scan_Factory::class )->create_queue();
|
||||
$queue->import( new QueueFilter(
|
||||
$request->get_param( 'plugins' ),
|
||||
$request->get_param( 'themes' ),
|
||||
$request->get_param( 'other' )
|
||||
) );
|
||||
|
||||
return [ 'remaining' => $queue->get_pending() ];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
|
||||
namespace WPML\ST\Rest\MO;
|
||||
|
||||
use WPML\ST\MO\File\Manager;
|
||||
use \WPML\Rest\Adaptor;
|
||||
use WPML\ST\MO\Generate\Process\ProcessFactory;
|
||||
use WPML\ST\MO\Scan\UI\Factory;
|
||||
|
||||
class PreGenerate extends \WPML\ST\Rest\Base {
|
||||
/** @var Manager */
|
||||
private $manager;
|
||||
|
||||
/** @var ProcessFactory */
|
||||
private $processFactory;
|
||||
|
||||
public function __construct(
|
||||
Adaptor $adaptor,
|
||||
Manager $manager,
|
||||
ProcessFactory $processFactory
|
||||
) {
|
||||
parent::__construct( $adaptor );
|
||||
$this->manager = $manager;
|
||||
$this->processFactory = $processFactory;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
function get_routes() {
|
||||
return [
|
||||
[
|
||||
'route' => 'pre_generate_mo_files',
|
||||
'args' => [
|
||||
'methods' => 'POST',
|
||||
'callback' => [ $this, 'generate' ],
|
||||
'args' => [],
|
||||
]
|
||||
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
function get_allowed_capabilities( \WP_REST_Request $request ) {
|
||||
return [ 'manage_options' ];
|
||||
}
|
||||
|
||||
public function generate() {
|
||||
if ( ! $this->manager->maybeCreateSubdir() ) {
|
||||
return [ 'error' => 'no access' ];
|
||||
}
|
||||
|
||||
Factory::clearIgnoreWpmlVersion();
|
||||
|
||||
return [ 'remaining' => $this->processFactory->create()->runPage() ];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user