diff options
Diffstat (limited to 'src/Wallabag/ApiBundle/Controller')
-rw-r--r-- | src/Wallabag/ApiBundle/Controller/TaggingRuleRestController.php | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/Wallabag/ApiBundle/Controller/TaggingRuleRestController.php b/src/Wallabag/ApiBundle/Controller/TaggingRuleRestController.php new file mode 100644 index 00000000..2496298a --- /dev/null +++ b/src/Wallabag/ApiBundle/Controller/TaggingRuleRestController.php | |||
@@ -0,0 +1,39 @@ | |||
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 | } | ||