Viewing file: base_resource.py (1.2 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
from flask_restful import Resource from ahab.models.model import Model from json import loads from flask import request
class BaseResource(Resource):
def __init__(self, table, pk, labels, relations={}): self.model = Model( table, pk, labels=labels, relations=relations )
def get(self): return self._parse_collection(self.model.get_all()) def post(self): data = self._get_input_data() input = self._unapply_labels(data) output = self.model.create(input) self._on_item_created(data) return output, 200
def put(self, id): data = self._get_input_data() input = self._unapply_labels(data) return self.model.update(id, input)
def _get_input_data(self): return loads(request.data)
def _parse_collection(self, collection): return collection
def _unapply_labels(self, data): input = {} for d in data: if d in self.labels.values(): input[self.labels.keys()[self.labels.values().index(d)]] = data[d] else: input[d] = data[d] return input
def _on_item_created(self, output): pass
|