]> git.immae.eu Git - github/wallabag/wallabag.git/blob - src/Wallabag/ApiBundle/Controller/TaggingRuleRestController.php
Merge pull request #4028 from wallabag/feature/import-export-tagging-rules
[github/wallabag/wallabag.git] / src / Wallabag / ApiBundle / Controller / TaggingRuleRestController.php
1 <?php
2
3 namespace Wallabag\ApiBundle\Controller;
4
5 use JMS\Serializer\SerializationContext;
6 use JMS\Serializer\SerializerBuilder;
7 use Nelmio\ApiDocBundle\Annotation\ApiDoc;
8 use Symfony\Component\HttpFoundation\Response;
9
10 class TaggingRuleRestController extends WallabagRestController
11 {
12 /**
13 * Export all tagging rules as a json file.
14 *
15 * @ApiDoc()
16 *
17 * @return Response
18 */
19 public function getTaggingruleExportAction()
20 {
21 $this->validateAuthentication();
22
23 $data = SerializerBuilder::create()->build()->serialize(
24 $this->getUser()->getConfig()->getTaggingRules(),
25 'json',
26 SerializationContext::create()->setGroups(['export_tagging_rule'])
27 );
28
29 return Response::create(
30 $data,
31 200,
32 [
33 'Content-type' => 'application/json',
34 'Content-Disposition' => 'attachment; filename="tagging_rules_' . $this->getUser()->getUsername() . '.json"',
35 'Content-Transfer-Encoding' => 'UTF-8',
36 ]
37 );
38 }
39 }