def post(self, request): if not can_create_question(self.request): return self.http_method_not_allowed(request) try: body = json.loads(request.body) except ValueError: return HttpResponse(status=400) try: jsonschema.validate(body, self.request_body_schema) except jsonschema.ValidationError: return HttpResponse(status=400) question_text = body.get('question') choices = body.get('choices') question, created = self.get_or_create(question_text, choices) resource = self.resource() resource.obj = question resource.request = request response = resource.get(request) if created: response.status_code = 201 response['Location'] = resource.get_uri() return response
def get_actions(self): actions = {} if can_create_question(self.request): actions['create'] = Action(method='POST', attributes=( Attribute(name='question', category='text'), Attribute(name='choices', category='array[text]'), )) return actions
def get_actions(self): actions = {} if can_create_question(self.request): actions['create'] = Action(method='POST', attributes=( Attribute(name='question', category='text'), Attribute(name='choices', category='array[text]'), )) return actions
def post(self, request): if not can_create_question(self.request): return self.http_method_not_allowed(request) body = json.loads(request.body) question_text = body.get('question') choices = body.get('choices') if not question_text or not isinstance(choices, list): return HttpResponse(status=400) question, created = self.get_or_create(question_text, choices) resource = self.resource() resource.obj = question resource.request = request response = resource.get(request) if created: response.status_code = 201 response['Location'] = resource.get_uri() return response
def post(self, request): if not can_create_question(self.request): return self.http_method_not_allowed(request) body = json.loads(request.body) question_text = body.get('question') choices = body.get('choices') if not question_text or not isinstance(choices, list): return HttpResponse(status=400) question, created = self.get_or_create(question_text, choices) resource = self.resource() resource.obj = question resource.request = request response = resource.get(request) if created: response.status_code = 201 response['Location'] = resource.get_uri() return response