aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Wallabag/ApiBundle
diff options
context:
space:
mode:
Diffstat (limited to 'src/Wallabag/ApiBundle')
-rw-r--r--src/Wallabag/ApiBundle/Controller/TaggingRuleRestController.php39
-rw-r--r--src/Wallabag/ApiBundle/Resources/config/routing_rest.yml5
2 files changed, 44 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
3namespace Wallabag\ApiBundle\Controller;
4
5use JMS\Serializer\SerializationContext;
6use JMS\Serializer\SerializerBuilder;
7use Nelmio\ApiDocBundle\Annotation\ApiDoc;
8use Symfony\Component\HttpFoundation\Response;
9
10class 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}
diff --git a/src/Wallabag/ApiBundle/Resources/config/routing_rest.yml b/src/Wallabag/ApiBundle/Resources/config/routing_rest.yml
index 06e62c37..98efeeb1 100644
--- a/src/Wallabag/ApiBundle/Resources/config/routing_rest.yml
+++ b/src/Wallabag/ApiBundle/Resources/config/routing_rest.yml
@@ -13,6 +13,11 @@ tag:
13 resource: "WallabagApiBundle:TagRest" 13 resource: "WallabagApiBundle:TagRest"
14 name_prefix: api_ 14 name_prefix: api_
15 15
16tagging_rule:
17 type: rest
18 resource: "WallabagApiBundle:TaggingRuleRest"
19 name_prefix: api_
20
16annotation: 21annotation:
17 type: rest 22 type: rest
18 resource: "WallabagApiBundle:AnnotationRest" 23 resource: "WallabagApiBundle:AnnotationRest"