get(RoutePermissionService::class); // Get all templates register_rest_route( $routeNamespace, '/templates', [ 'methods' => WP_REST_Server::READABLE, 'callback' => $container->get(GetTemplatesController::class), 'permission_callback' => static function () use ($routePermissionService) { return $routePermissionService->canViewForms(); } ] ); // Get specific template by ID register_rest_route( $routeNamespace, '/template/(?P[a-zA-Z0-9_-]+)', [ 'methods' => WP_REST_Server::READABLE, 'callback' => $container->get(GetTemplateController::class), 'permission_callback' => static function () use ($routePermissionService) { return $routePermissionService->canViewForms(); } ] ); // Create form from template register_rest_route( $routeNamespace, '/template/create', [ 'methods' => WP_REST_Server::CREATABLE, 'callback' => $container->get(AddFormController::class), 'permission_callback' => static function () use ($routePermissionService) { return $routePermissionService->canEditForms(); } ] ); } }