code: public function approve($pageName, $languageName)
      {
          $this->contributorDefined();
  
          $baseDir = $this->pagesDir . '/' . $pageName . '/' . $languageName;
          $sourceFile = $baseDir . '/' . $this->username . '.json';
          $targetFile = $baseDir . '/seo.json';
          if (!file_exists($targetFile)) {
              throw new PageNotPublishedException('exception_page_not_published');
          }
  
          $values = json_decode(FilesystemTools::readFile($sourceFile), true);
          if (!empty($values["current_permalink"])) {
              $values["changed_permalinks"][] = $values["current_permalink"];
              $values["current_permalink"] = "";
          }
  
          $encodedSeo = json_encode($values);
          $event = Dispatcher::dispatch(PageEvents::PAGE_APPROVING, new PageApprovingEvent($sourceFile, $encodedSeo));
          $encodedSeo = $event->getFileContent();
  
          FilesystemTools::writeFile($sourceFile, $encodedSeo);
          FilesystemTools::writeFile($targetFile, $encodedSeo);
  
          Dispatcher::dispatch(PageEvents::PAGE_APPROVED, new PageApprovedEvent($sourceFile, $encodedSeo));
          DataLogger::log(sprintf('Page SEO attributes "%s" for language "%s" were approved', $pageName, $languageName));
  
          return $encodedSeo;
      }
docs: Approves the page in production
  @param $pageName
  @param $languageName
  
  @return string The json seo content