def data(self, **kwargs): res = clib.get_obj(self.serializer, **kwargs) srl = self.serializer(res['object']) gids = self.groups(res['object'].pk) resp = clib.jsonresult(srl.data) resp['result']['groups'] = gids['result'] return resp
def data(self, **kwargs): try: cast = kwargs.pop('cast') except KeyError: cast = False res = get_obj(self.serializer, **kwargs) if cast: self.serializer = (cast_serializer(kwargs.get('kind')) or self.serializer) srl = self.serializer(res['object'], context={}) return jsonresult(srl.data)
def add(self, **kwargs): try: # TODO. MUST BE ADRESSED IN API 3.1. try: data = self.request.data.dicts[0] or self.request.data.dicts[1] except: data = self.request.data if kwargs: data.update(kwargs) srl = self.serializer(data=data) if srl.is_valid(): srl.save() return jsonresult(srl.data) return jsonerror(srl.errors) except ValidationError as e: return jsonerror('Error: {}'.format(e))
def upd(self, **kwargs): try: res = get_obj(self.serializer, **kwargs) if res.get('error'): return jsonerror(res['error']) srl = self.serializer(res['object'], data=self.request.data, partial=True) if srl.is_valid(): srl.save() return jsonresult(srl.data) return jsonerror(''.join([ ','.join([k + '-' + ''.join(v)]) for k, v in srl.errors.items() ])) except ValidationError as e: return jsonerror('Error: {}'.format(e))
def add(self, **kwargs): try: # TODO. MUST BE ADRESSED IN API 3.1. try: data = self.request.data.dicts[0] or self.request.data.dicts[1] except: data = self.request.data data['content'] = self.request.data['content'] data['content_type'] = self.request.data['content'].content_type if kwargs: data.update(kwargs) srl = self.serializer(data=data) # TODO. Remove save method and use "create" instead. if srl.is_valid(): srl.save() return clib.jsonresult(srl.data) return clib.jsonerror(srl.errors) except ValidationError as e: return clib.jsonerror('Error: {}'.format(e))
user.set_password(self.request.data['password']) user.save() return clib.jsonsuccess('Password has been changed') except KeyError: return clib.jsonerror('Could not change password') def add_group(self, uid, gid): try: user = self.serializer.Meta.model.objects.get(pk=uid) user.groups.add(int(gid)) except Exception, e: return clib.jsonerror(str(e)) return clib.jsonsuccess('User has been assigned to a group %s' % gid) def rm_group(self, uid, gid): try: user = self.serializer.Meta.model.objects.get(pk=uid) user.groups.remove(int(gid)) except Exception, e: return clib.jsonerror(str(e)) return clib.jsonsuccess('User has been removed from a group %s' % gid) def groups(self, uid): try: user = self.serializer.Meta.model.objects.get(pk=uid) except Exception, e: return clib.jsonerror(str(e)) return clib.jsonresult( [{'id': i[0], 'name': i[1]} for i in user.groups.values_list('id', 'name')] )
def ls(self): queryset = self.serializer.Meta.model.objects.all() return jsonresult(self.serializer(queryset, many=True).data)