aboutsummaryrefslogtreecommitdiffstats
path: root/layerindex/restviews.py
diff options
context:
space:
mode:
authorAlexandru DAMIAN <alexandru.damian@intel.com>2014-07-16 15:50:53 +0100
committerPaul Eggleton <paul.eggleton@linux.intel.com>2014-09-24 11:32:34 +0100
commit1c9d6be527e334046ea4d8f6ae3617c6e9d166c2 (patch)
tree03124bdbf167e75cac3780741a5d41825188356b /layerindex/restviews.py
parent99b9b014db31b381e4486c57779ffa5de532c0bd (diff)
downloadopenembedded-core-contrib-1c9d6be527e334046ea4d8f6ae3617c6e9d166c2.tar.gz
expose REST API for layerindex
This patch enables a read-only REST API for the layerindex application using Django REST Framework. The objects of types Branch, LayerBranch and LayerItem are exposed to queries so that the layerindex application can function as a Layer Source in Toaster. The library dependencies are documented in the requirements.txt file. Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Diffstat (limited to 'layerindex/restviews.py')
-rw-r--r--layerindex/restviews.py58
1 files changed, 58 insertions, 0 deletions
diff --git a/layerindex/restviews.py b/layerindex/restviews.py
new file mode 100644
index 0000000000..61698a9918
--- /dev/null
+++ b/layerindex/restviews.py
@@ -0,0 +1,58 @@
+from models import Branch, LayerItem, LayerNote, LayerBranch, LayerDependency, Recipe, Machine
+from rest_framework import viewsets, serializers
+from querysethelper import params_to_queryset, get_search_tuple
+
+class ParametricSearchableModelViewSet(viewsets.ModelViewSet):
+ def get_queryset(self):
+ model = self.__class__.serializer_class.Meta.model
+ qs = model.objects.all()
+ (filter_string, search_term, ordering_string) = get_search_tuple(self.request, model)
+ return params_to_queryset(model, qs, filter_string, search_term, ordering_string)
+
+class BranchSerializer(serializers.ModelSerializer):
+ class Meta:
+ model = Branch
+
+class BranchViewSet(ParametricSearchableModelViewSet):
+ queryset = Branch.objects.all()
+ serializer_class = BranchSerializer
+
+class LayerItemSerializer(serializers.ModelSerializer):
+ class Meta:
+ model = LayerItem
+
+class LayerItemViewSet(ParametricSearchableModelViewSet):
+ queryset = LayerItem.objects.all()
+ serializer_class = LayerItemSerializer
+
+class LayerBranchSerializer(serializers.ModelSerializer):
+ class Meta:
+ model = LayerBranch
+
+class LayerBranchViewSet(ParametricSearchableModelViewSet):
+ queryset = LayerBranch.objects.all()
+ serializer_class = LayerBranchSerializer
+
+class LayerDependencySerializer(serializers.ModelSerializer):
+ class Meta:
+ model = LayerDependency
+
+class LayerDependencyViewSet(ParametricSearchableModelViewSet):
+ queryset = LayerDependency.objects.all()
+ serializer_class = LayerDependencySerializer
+
+class RecipeSerializer(serializers.ModelSerializer):
+ class Meta:
+ model = Recipe
+
+class RecipeViewSet(ParametricSearchableModelViewSet):
+ queryset = Recipe.objects.all()
+ serializer_class = RecipeSerializer
+
+class MachineSerializer(serializers.ModelSerializer):
+ class Meta:
+ model = Machine
+
+class MachineViewSet(ParametricSearchableModelViewSet):
+ queryset = Machine.objects.all()
+ serializer_class = MachineSerializer