def rebuild_fans(self, session, pipe): from seplis.api.base.show import Show fans = session.query(models.Show_fan).all() for fan in fans: Show.cache_fan( show_id=fan.show_id, user_id=fan.user_id, pipe=pipe, )
def get(self, show_id): per_page = int(self.get_argument('per_page', constants.PER_PAGE)) page = int(self.get_argument('page', 1)) show = Show.get(show_id) if not show: raise exceptions.Show_unknown() self.write_object(show.get_fans(page=page, per_page=per_page))
def delete(self, user_id, show_id): if int(user_id) != self.current_user.id: self.check_edit_another_user_right() show = Show.get(show_id) if not show: raise exceptions.Show_unknown() show.unfan(user_id)
def _get(self, title, value): show_id = Show.get_id_by_external(title, value) if not show_id: raise exceptions.Not_found( 'show not found with external: {} with id: {}'.format( title, value)) return show_id
def delete(self, user_id, show_id): if int(user_id) != self.current_user.id: self.check_edit_another_user_right() show = Show.get(show_id) if not show: raise exceptions.Show_unknown() show.unfan( user_id )
def get(self, show_id): per_page = int(self.get_argument('per_page', constants.PER_PAGE)) page = int(self.get_argument('page', 1)) show = Show.get(show_id) if not show: raise exceptions.Show_unknown() self.write_object( show.get_fans(page=page, per_page=per_page) )
def rebuild_shows(self, session, pipe): from seplis.api.base.show import Show to_es = [] for item in session.query(models.Show).yield_per(10000): a = Show._format_from_row(item) to_es.append({ '_index': 'shows', '_type': 'show', '_id': a.id, '_source': utils.json_dumps(a), }) helpers.bulk(database.es, to_es)
def post(self, show_id=None): yield self._post() if show_id: raise exceptions.Parameter_must_not_be_set_exception( 'show_id must not be set when creating a new one') show_id = Show.create() self.set_status(201) if self.request.body: show = yield self._update(show_id, validate_show=False) self.write_object(show) else: self.write_object({ 'id': show_id, })
def post(self, show_id=None): yield self._post() if show_id: raise exceptions.Parameter_must_not_be_set_exception( 'show_id must not be set when creating a new one' ) show_id = Show.create() self.set_status(201) if self.request.body: show = yield self._update( show_id, validate_show=False ) self.write_object(show) else: self.write_object({ 'id': show_id, })
def _update(self, show_id, validate_show=True, overwrite=False): if validate_show: self.validate(schemas.Show_schema) show = Show.get(show_id) if not show: raise exceptions.Show_unknown() self._update_keys( keys=self.update_keys, data=show.__dict__, new_data=self.request.body, overwrite=overwrite, ) if 'description' in self.request.body: desc = self.request.body['description'] if desc: if 'text' in desc: show.description.text = desc['text'] if 'title' in desc: show.description.title = desc['title'] if 'url' in desc: show.description.url = desc['url'] if 'poster_image_id' in self.request.body: show.add_poster_image(self.request.body['poster_image_id']) if overwrite: for index, externals in constants.INDEX_TYPES: if index not in show.indices: show.indices[index] = None if 'episodes' in self.request.body: self.patch_episodes( show_id, self.request.body['episodes'], ) show.save() if show.poster_image: show.poster_image = self.image_format( show.poster_image.__dict__ ) return show
def _update(self, show_id, validate_show=True, overwrite=False): if validate_show: self.validate(schemas.Show_schema) show = Show.get(show_id) if not show: raise exceptions.Show_unknown() self._update_keys( keys=self.update_keys, data=show.__dict__, new_data=self.request.body, overwrite=overwrite, ) if 'description' in self.request.body: desc = self.request.body['description'] if desc: if 'text' in desc: show.description.text = desc['text'] if 'title' in desc: show.description.title = desc['title'] if 'url' in desc: show.description.url = desc['url'] if 'poster_image_id' in self.request.body: show.add_poster_image(self.request.body['poster_image_id']) if overwrite: for index, externals in constants.INDEX_TYPES: if index not in show.indices: show.indices[index] = None if 'episodes' in self.request.body: self.patch_episodes( show_id, self.request.body['episodes'], ) show.save() if show.poster_image: show.poster_image = self.image_format(show.poster_image.__dict__) return show
def _get(self, title, value): show_id = Show.get_id_by_external(title, value) if not show_id: raise exceptions.Not_found('show not found with external: {} with id: {}'.format(title, value)) return show_id