def create_video( db: Session, cloud: str, bucket: str, key: str, etag: str = None, mime_type: str = None, size: int = None, duration: int = None, width: int = None, height: int = None, persistent_id: str = None) ->MoretimeVideoModel: """ Create `video` record if not existed. Igonre `Duplicate Entry` error. """ video = None try: video = MoretimeVideoModel( cloud=cloud, bucket=bucket, key=key, etag=etag, mime_type=mime_type, size=size, duration=duration, width=width, height=height, persistent_id=persistent_id, status=0, create_ts=current_timestamp() ) db.add(video) db.commit() except IntegrityError as exc: db.rollback() if is_duplicate_entry_exception(exc): return video else: raise return video
def create_reply(db: Session, poster_id: int, from_user_id: int, to_user_id: int, parent_ids: str, prior_id: int, content: str, picture_id_list: List[int] = None, video_id_list: List[int] = None, sort_order: List[int] = None) -> DictObject: reply = ReplyModel(poster_id=poster_id, prior_id=prior_id, parent_ids=parent_ids, create_ts=current_timestamp(), content=content, from_user_id=from_user_id, to_user_id=to_user_id) if picture_id_list: reply.picture_ids_private = ','.join([str(i) for i in picture_id_list]) if video_id_list: reply.video_ids_private = ','.join([str(i) for i in video_id_list]) if sort_order is not None: reply.sort_order = ','.join([str(i) for i in sort_order]) return reply
def create_poster_transaction(db: Session, order_no: int, from_user_id: int, to_user_id: int, content: str, picture_id_list: List[int] = None, video_id_list: List[int] = None, sort_order: List[int] = None) -> int: poster = None try: poster = PosterModel(index_id=order_no, create_ts=current_timestamp(), content=content, from_user_id=from_user_id, to_user_id=to_user_id) if picture_id_list is not None: poster.picture_ids_private = ','.join( [str(i) for i in picture_id_list]) if video_id_list is not None: poster.video_ids_private = ','.join( [str(i) for i in video_id_list]) if sort_order is not None: poster.sort_order = ','.join([str(i) for i in sort_order]) db.add(poster) db.commit() except Exception as e: # TODO: LOG db.rollback() print('create_poster_transaction', str(e)) raise return poster
def create_rate(db: Session, order_no: int, rate: int, buyer_id: int, seller_id: int) -> int: order_rate = MoretimeRateModel(order_no=order_no, rate=rate, update_ts=current_timestamp(), buyer_id=buyer_id, seller_id=seller_id) return order_rate
def delete_rate_by_order_no(db: Session, order_no: int): try: m_rate = MoretimeRateModel(order_no=order_no) m_rate.status = -1, m_rate.update_ts = current_timestamp() db.merge(m_rate) db.commit() except Exception as e: db.rollback() print('delete_rate_by_order_no', str(e)) raise
def delete_reply_by_id(db: Session, reply_id: int) -> None: try: m_reply = ReplyModel(reply_id=reply_id) m_reply.status = -1 m_reply.update_ts = current_timestamp() db.merge(m_reply) db.commit() except Exception as e: db.rollback() print('delete_reply_by_reply_id', str(e)) raise
def delete_poster_by_id(db: Session, poster_id: int): try: m_poster = PosterModel(id=poster_id) m_poster.status = -1, m_poster.update_ts = current_timestamp() db.merge(m_poster) db.commit() except Exception as e: db.rollback() print('delete_poster_by_poster_id', str(e)) raise
def delete_poster_picvide_public_by_poster_id(db: Session, poster_id: int): try: m_poster = PosterModel(id=poster_id) m_poster.picture_ids_public = '' m_poster.video_ids_public = '' m_poster.update_ts = current_timestamp() db.merge(m_poster) db.commit() except Exception as e: db.rollback() print('delete_poster_picvide_public_by_poster_id', str(e)) raise
def delete_poster_picvide_public_by_reply_id(db: Session, reply_id: int) -> None: """ """ try: m_reply = ReplyModel(reply_id=reply_id) m_reply.picture_ids_public = '' m_reply.video_ids_public = '' m_reply.update_ts = current_timestamp() db.merge(m_reply) db.commit() except Exception as e: db.rollback() print('delete_poster_by_poster_id', str(e)) raise
def update_poster_by_id(db: Session, poster_id: int, content: str = None, content_visible: int = None, picvid_visible: int = None, picture_ids_public: List[int] = None, picture_ids_private: List[int] = None, video_ids_public: List[int] = None, video_ids_private: List[int] = None, sort_order: List[int] = None): try: m_poster = PosterModel(id=poster_id) if content is not None: m_poster.content = content if content_visible is not None: m_poster.content_visible = content_visible if picvid_visible is not None: m_poster.picvid_visible = picvid_visible if picture_ids_public is not None: m_poster.picture_ids_public = ','.join( [str(i) for i in picture_ids_public]) if picture_ids_private is not None: m_poster.picture_ids_private = ','.join( [str(i) for i in picture_ids_private]) if video_ids_public is not None: m_poster.video_ids_public = ','.join( [str(i) for i in video_ids_public]) if video_ids_private is not None: m_poster.video_ids_private = ','.join( [str(i) for i in video_ids_private]) if sort_order is not None: poster.sort_order = ','.join([str(i) for i in sort_order]) m_poster.update_ts = current_timestamp() db.merge(m_poster) db.commit() except Exception as e: db.rollback() print('update_poster_by_id', str(e)) raise
def create_order_poster_transaction(db: Session, order_no: int, user_id: int, poster_id: int, to_user_id: int) -> int: try: order_poster = OrderPosterModel(order_no=order_no, poster_id=poster_id, create_ts=current_timestamp(), seller_id=user_id, buyer_id=to_user_id) db.add(order_poster) db.commit() except Exception as e: # TODO: LOG db.rollback() print('create_order_poster_transaction', str(e)) raise return order_poster
def update_reply_by_id(db: Session, reply_id: int, content: str = None, picture_ids_public: List = None, picture_ids_private: List = None, video_ids_public: List = None, video_ids_private: List = None, sort_order: List = None): try: m_reply = ReplyModel(id=reply_id) if content is not None: m_reply.content = content if picture_ids_public is not None: m_reply.picture_ids_public = ','.join( [str(i) for i in picture_ids_public]) if picture_ids_private is not None: m_reply.picture_ids_private = picture_ids_private if video_ids_public is not None: m_reply.video_ids_public = ','.join( [str(i) for i in video_ids_public]) if video_ids_private is not None: m_reply.video_ids_private = video_ids_private if sort_order is not None: m_reply.sort_order = ','.join([str(i) for i in sort_order]) m_reply.update_ts = current_timestamp() db.merge(m_reply) db.commit() except Exception as e: db.rollback() print('update_reply_by_reply_id', str(e)) raise