diff options
author | Alexandru DAMIAN <alexandru.damian@intel.com> | 2014-07-16 15:50:53 +0100 |
---|---|---|
committer | Paul Eggleton <paul.eggleton@linux.intel.com> | 2014-09-24 11:32:34 +0100 |
commit | 1c9d6be527e334046ea4d8f6ae3617c6e9d166c2 (patch) | |
tree | 03124bdbf167e75cac3780741a5d41825188356b /layerindex/restviews.py | |
parent | 99b9b014db31b381e4486c57779ffa5de532c0bd (diff) | |
download | openembedded-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.py | 58 |
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 |