diff --git a/lib/modules/onboarding/onboarding.php b/lib/modules/onboarding/onboarding.php index f08269a2..32d2a807 100644 --- a/lib/modules/onboarding/onboarding.php +++ b/lib/modules/onboarding/onboarding.php @@ -3,7 +3,7 @@ namespace Podlove\Modules\Onboarding; use Podlove\Modules\Onboarding\Settings\OnboardingPage; -use Podlove\Api\Admin\WP_REST_PodloveOnboarding_Controller; +use Podlove\Modules\Onboarding\WP_REST_PodloveOnboarding_Controller; class Onboarding extends \Podlove\Modules\Base { diff --git a/lib/modules/onboarding/rest_api.php b/lib/modules/onboarding/rest_api.php new file mode 100644 index 00000000..96b61e8e --- /dev/null +++ b/lib/modules/onboarding/rest_api.php @@ -0,0 +1,55 @@ +namespace = 'podlove/v2'; + $this->rest_base = 'onboarding'; + } + + /** + * Register the component routes. + */ + public function register_routes() + { + register_rest_route($this->namespace, $this->rest_base."/setup", [ + [ + 'methods' => \WP_REST_SERVER::EDITABLE, + 'callback' => [$this, 'update_items'], + 'permission_callback' => [$this, 'update_permissions_check'] + ] + ]); + } + + public function update_items($request) + { + // activate File-Upload-Module and set default settings + if (!\Podlove\Modules\Base::is_active('wordpress_file_upload')) { + \Podlove\Modules\Base::activate('wordpress_file_upload'); + } + $upload_modul = Wordpress_File_Upload::instance(); + $upload_modul->update_module_option('upload_subdir', 'podlove-media'); + // set upload loaction to emty + $settings = get_option('podlove_podcast'); + $settings["media_file_base_uri"] = ""; + update_option('podlove_podcast', $settings); + } + + public function update_permissions_check($request) + { + if (!current_user_can('edit_posts')) { + return new \Podlove\Api\Error\ForbiddenAccess(); + } + + return true; + } +}