Posts Services

class services.posts.like.LikeService[source]

Bases: object

classmethod create(post: Post, user: User) Like[source]

Create like

classmethod delete(post: Post, user: User) None[source]

Detele like

classmethod get(data) Like[source]
class services.posts.favorite.FavoriteService[source]

Bases: object

classmethod create(post: Post, user: User) Tuple[Favorite, bool][source]

Create Favorite post

classmethod delete(post: Post, user: User)[source]

Delete Favorite post

classmethod get(**kwargs)[source]

Retrieve Favorite post instance

class services.posts.media.PostMediaService[source]

Bases: object

Post Media Service

classmethod compress_media(medias: List[PostMedia]) None[source]
classmethod create(post: Post, media_list: List)[source]

Method for create media :param post: Post object :param media_list: List of image and video

classmethod set_formatted_path(post_media: PostMedia, upload_video_path: str, upload_preview_path: str) PostMedia[source]

Set proccessed video and preview from Video service :param post_media: PostMedia instance :param upload_video_path: Path to formatted video :param upload_preview_path: Path to preview

classmethod update(post_media: PostMedia, data: Dict[str, Any]) PostMedia[source]

Update post :param post_media: PostMedia instance :param data: Validated data

class services.posts.tags.TagService[source]

Bases: object

static get_or_create_tags(tag_names: list) list[source]
class services.posts.compression.ImageCompressionService(media_id)[source]

Bases: object

__init__(media_id)[source]
classmethod compress(media_id)[source]
exception services.posts.exceptions.AlreadyAddedToFavoritesException[source]

Bases: Exception

Post already added to favorites by user

exception services.posts.exceptions.AlreadyLikedPostException[source]

Bases: Exception

Post already liked by user

exception services.posts.exceptions.CategoriesDontExistException[source]

Bases: Exception

Selected categories for post are don’t exist or unavailable

exception services.posts.exceptions.CommentLimitImageException[source]

Bases: Exception

Comment has limit on images

exception services.posts.exceptions.PostUnavailableForCommentingException[source]

Bases: Exception

Selected categories for post are don’t exist or unavailable

exception services.posts.exceptions.TooManyCategoriesException[source]

Bases: Exception

Post contains more categories than allowed by the limits.

exception services.posts.exceptions.TooManyLinkedMediaException[source]

Bases: Exception

Post contains more media than allowed by the limits.

exception services.posts.exceptions.UserNotHasThisPostInFavoritesException[source]

Bases: Exception

User not doesn’t have this post in favorites list

exception services.posts.exceptions.UserNotLikeThisPostException[source]

Bases: Exception

User not Like this post

class services.posts.comment_image.CommentImageService[source]

Bases: object

classmethod create(data) CommentImage[source]
classmethod remove(instance: CommentImage) None[source]
classmethod remove_by_comment(comment: Comment) None[source]
class services.posts.post_views.PostViewService[source]

Bases: object

classmethod view(post: Post, user: User) View[source]

Creates view of post if user doesn’t have it before and refresh total quantity of posts :param post: Viewed post :param user: The user which viewed post :return: View instance

class services.posts.category.PostCategoryService[source]

Bases: object

classmethod set_categories(post: Post, categories_ids: List[int]) None[source]

Set categories list to post instance after validation :param post: Post instance :param categories_ids: categories id list

class services.posts.comment.CommentService[source]

Bases: object

classmethod add_image(comment: Comment, image) CommentImage[source]
classmethod add_images(comment: Comment, images: List[Dict[str, Any]]) None[source]
comment_image_service

alias of CommentImageService

classmethod create(data: Dict[str, Any]) Comment[source]
classmethod delete(instance: Comment) None[source]
notification_service

alias of NotificationService

classmethod update(instance: Comment, data: Dict[str, Any]) Comment[source]

update for Verification

classmethod validate_count_images(comment: Comment)[source]
class services.posts.notifications.PostNotificationService[source]

Bases: object

notification_class

alias of NotificationService

classmethod publish(post: Post)[source]