def put(self, album_id): album = Album.select().where(Album.id == album_id).first() if album: status_code = 200 args = self.parser.parse_args() classification = args.get('classification', []) cl_json_list = [] """ Return album data without update if error classification data""" if type(classification) == type([]) and len(classification) != 0: cl_obj_list = Classification.select().where( Classification.id << classification) for item in cl_obj_list: if item in album.classification: continue album.classification.add(item) album.save() for item in album.classification: cl_json_list.append(model_to_dict(item)) album = model_to_dict(album) album['classification'] = cl_json_list resp = {'error_code': 0, 'data': album} else: status_code = 400 self.resource_fields['message'] = fields.String( attribute='message') resp = {'error_code': 40021, 'message': 'Album dose not exist.'} return make_response(json.dumps(marshal(resp, self.resource_fields)), status_code)
def get(self): self.parser.remove_argument('name') self.parser.remove_argument('artist') self.parser.remove_argument('is_hot') self.parser.remove_argument('classification') self.resource_fields['data'] = fields.List( fields.Nested(self.album_fields)) args = self.parser.parse_args() offset = args.get('offset') limit = args.get('limit') cl_id = args.get('classification_id') album_list = (Album.select().join(AlbumClassificationThrough).join( Classification).where(Classification.id == cl_id).paginate( offset, limit)) if cl_id else (Album.select().paginate( offset, limit)) data = [ model_to_dict(album, backrefs=True, manytomany=True) for album in album_list ] resp = {'error_code': 0, 'data': data} return make_response(json.dumps(marshal(resp, self.resource_fields)), 200)
def get(self, album_id): resp = {} album = Album.select().where(Album.id == album_id).first() if album: cl_obj_list = album.classification cl_json_list = [] if cl_obj_list.exists(): for item in cl_obj_list: cl_json_list.append(model_to_dict(item)) album = model_to_dict(album) album['classification'] = cl_json_list resp = {'error_code': 0, 'data': album} return make_response(json.dumps(marshal(resp, self.resource_fields)), 200)