'createPage', // TODO only define for POST 'GET pages' => 'apiPagesBase', 'GET pages/(.*)' => 'apiPageBase', 'GET pages/(.*)/md' => 'apiPageAsMd' ]; } /** * method to create a page * @return JsonResponse */ public function createPage(string $pageName): JsonResponse { return new JsonResponse(501,['code'=>501,'reason'=>"work in progress for '$pageName'"]); } /** * method to see base of pages api * @return JsonResponse */ public function apiPagesBase(): JsonResponse { return new JsonResponse(200,[ 'title' => 'Base api route to see pages', 'routes' => [ 'Base for one page' => urldecode($this->getPico()->getPageUrl('index',[ 'api' => 'pages/' ])), 'page as Markdown' => urldecode($this->getPico()->getPageUrl('index',[ 'api' => 'pages//md' ])), 'page as Markdown Extra' => urldecode($this->getPico()->getPageUrl('index',[ 'api' => 'pages//mdx' ])) ] ]); } /** * method to see base of page api * @return JsonResponse */ public function apiPageBase(string $pageName): JsonResponse { return new JsonResponse(200,[ 'title' => 'Base api route to see page', 'routes' => [ 'page as Markdown' => $this->getPico()->getPageUrl('index',[ 'api' => "pages/$pageName/md" ]), 'page as Markdown Extra' => $this->getPico()->getPageUrl('index',[ 'api' => "pages/$pageName/mdx" ]) ] ]); } /** * method to see page as md * @return JsonResponse */ public function apiPageAsMd(string $pageName): JsonResponse { $pages = $this->getPico()->getPages(); if (array_key_exists($pageName,$pages)){ return new MdResponse(200,$pages[$pageName]['raw_content']); } else { return new JsonResponse(404,['code'=>404,'reason'=>"Page '$pageName' has not been found !"]); } } }