formBuilderResourceController = $formBuilderResourceController; } /** * @since 3.0.0 * * @return void */ public function __invoke() { $this->registerGetForm(FormBuilderRestRouteConfig::NAMESPACE, FormBuilderRestRouteConfig::PATH); $this->registerPostForm(FormBuilderRestRouteConfig::NAMESPACE, FormBuilderRestRouteConfig::PATH); } /** * Get Request * * @since 4.14.0 replace permission callback logic with UserPermissions facade * @since 4.3.2 update capability to add edit_give_forms * @since 3.0.0 * * @return void */ public function registerGetForm(string $namespace, string $route) { register_rest_route($namespace, $route, [ 'methods' => WP_REST_Server::READABLE, 'callback' => function (WP_REST_Request $request) { return $this->formBuilderResourceController->show($request); }, 'permission_callback' => function () { return UserPermissions::donationForms()->canEdit(); }, 'args' => [ 'id' => [ 'type' => 'integer', 'sanitize_callback' => 'absint', ], ], ]); } /** * Post Request * * @since 4.14.0 replace permission callback logic with UserPermissions facade * @since 4.3.2 update capability to add edit_give_forms * @since 3.0.0 * * @return void */ public function registerPostForm(string $namespace, string $route) { register_rest_route($namespace, $route, [ 'methods' => WP_REST_Server::CREATABLE, 'callback' => function (WP_REST_Request $request) { return $this->formBuilderResourceController->update($request); }, 'permission_callback' => function () { return UserPermissions::donationForms()->canEdit(); }, 'args' => [ 'id' => [ 'type' => 'integer', 'sanitize_callback' => 'absint', ], 'blocks' => [ 'type' => 'string', ], ], ]); } }