Projet

Général

Profil

0001-csv-datasource-add-POST-method-support.patch

Josué Kouka, 26 mai 2016 15:48

Télécharger (1,91 ko)

Voir les différences:

Subject: [PATCH] csv datasource: add POST method support

 passerelle/apps/csvdatasource/views.py | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
passerelle/apps/csvdatasource/views.py
4 4
from django.views.generic.edit import CreateView, UpdateView, DeleteView
5 5
from django.views.generic.detail import DetailView, SingleObjectMixin
6 6
from django.views.generic.base import View
7
from django.utils.decorators import method_decorator
8
from django.views.decorators.csrf import csrf_exempt
9

  
7 10

  
8 11
from passerelle import utils
9 12

  
......
38 41
class CsvDataView(View, SingleObjectMixin):
39 42
    model = CsvDataSource
40 43

  
44
    @method_decorator(csrf_exempt)
45
    def dispatch(self, request, *args, **kwargs):
46
        return super(CsvDataView, self).dispatch(request, *args, **kwargs)
47

  
41 48
    @utils.protected_api('can_access')
42 49
    @utils.to_json('api')
43 50
    def get(self, request, *args, **kwargs):
......
49 56
            if column_title in request.GET:
50 57
                filters[column_title] = request.GET[column_title]
51 58
        return obj.get_data(filters, query=query, case_insensitive=case_insensitive)
59

  
60
    @utils.protected_api('can_access')
61
    @utils.to_json('api')
62
    def post(self, request, *args, **kwargs):
63
        filters = json.loads(request.body)
64
        query = filters.pop('q', None)
65
        case_insensitive = filters.pop('case-insensitive', False)
66
        return obj.get_data(filters, query=query, case_insensitive=case_insensitive)
52
-