Class PostServiceImpl

java.lang.Object
ru.averkiev.socialmediaapi.services.impl.PostServiceImpl
All Implemented Interfaces:
PostService

@Service public class PostServiceImpl extends Object implements PostService
Класс реализует функционал взаимодействия пользователя с постом. Такой, как создание и обновление поста, а также взаимодействия с изображениями к посту.
Author:
mrGreenNV
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addImage(Long postId, Image image)
    Позволяет прикрепить изображения к посту.
    Позволяет создать пост.
    void
    deleteImage(Long postID, Long imageId)
    Позволяет открепить изображение от поста.
    void
    deletePost(Long postId)
    Позволяет пользователю удалить свой пост.
    Позволяет получить список всех постов отсортированных по дате создания.
    getAllPostByCreateAt(org.springframework.data.domain.PageRequest pageRequest)
    Позволяет получить список всех постов отсортированных по дате создания с пагинацией страниц.
    Позволяет получить список постов по идентификаторам их создателей сортируя по дате.
    getPostByUserIds(List<Long> userIds, org.springframework.data.domain.PageRequest pageRequest)
    Позволяет получить список постов по идентификаторам их создателей сортируя по дате с пагинацией страниц.
    Позволяет посмотреть все посты пользователя.
    showAllPostsByUser(org.springframework.data.domain.PageRequest pageRequest)
    Позволяет посмотреть все посты пользователя с пагинацией страниц.
    updatePost(Long postId, Post updatedPost)
    Позволяет обновить пост.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • PostServiceImpl

      public PostServiceImpl()
  • Method Details

    • createPost

      public Post createPost(Post post) throws PostCreationException, AuthException
      Позволяет создать пост.
      Specified by:
      createPost in interface PostService
      Parameters:
      post - создаваемый пост.
      Returns:
      созданный пост.
      Throws:
      PostCreationException - выбрасывает при возникновении ошибки при создании поста.
      AuthException - выбрасывает если недостаточно прав.
    • addImage

      public void addImage(Long postId, Image image) throws AuthException, PostNotFoundException
      Позволяет прикрепить изображения к посту.
      Specified by:
      addImage in interface PostService
      Parameters:
      postId - идентификатор поста к которому добавляется изображение.
      image - прикрепляемое изображение.
      Throws:
      AuthException - выбрасывает если недостаточно прав для редактирования поста.
      PostNotFoundException - выбрасывает если пост с заданным идентификатором не удалось найти в базе данных.
    • deleteImage

      public void deleteImage(Long postID, Long imageId) throws PostNotFoundException, AuthException, ImageNotFoundException
      Позволяет открепить изображение от поста.
      Specified by:
      deleteImage in interface PostService
      Parameters:
      postID - идентификатор поста.
      imageId - идентификатор изображения.
      Throws:
      PostNotFoundException - выбрасывает, если пост не найден в базе данных.
      AuthException - выбрасывает, если недостаточно прав.
      ImageNotFoundException - выбрасывает, если изображение не найдено в базу данных.
    • updatePost

      public Post updatePost(Long postId, Post updatedPost) throws PostNotFoundException, AuthException
      Позволяет обновить пост.
      Specified by:
      updatePost in interface PostService
      Parameters:
      postId - идентификатор обновляемого поста.
      updatedPost - пост с новыми данными.
      Returns:
      объект Post с обновленными данными.
      Throws:
      PostNotFoundException - выбрасывает, если пост не найден в базе данных.
      AuthException - выбрасывает, если недостаточно прав.
    • deletePost

      public void deletePost(Long postId) throws PostNotFoundException, AuthException
      Позволяет пользователю удалить свой пост.
      Specified by:
      deletePost in interface PostService
      Parameters:
      postId - идентификатор удаляемого поста.
      Throws:
      PostNotFoundException - выбрасывает, если пост с заданным идентификатором не найден в базе данных.
      AuthException - выбрасывает, если для удаления поста недостаточно прав.
    • showAllPostsByUser

      public List<Post> showAllPostsByUser(org.springframework.data.domain.PageRequest pageRequest) throws AuthException
      Позволяет посмотреть все посты пользователя с пагинацией страниц.
      Specified by:
      showAllPostsByUser in interface PostService
      Parameters:
      pageRequest - пагинация.
      Returns:
      список постов.
      Throws:
      AuthException - выбрасывает, если произошла ошибка при получении данных из аутентификации пользователя.
    • showAllPostsByUser

      public List<Post> showAllPostsByUser() throws AuthException
      Позволяет посмотреть все посты пользователя.
      Specified by:
      showAllPostsByUser in interface PostService
      Returns:
      список постов.
      Throws:
      AuthException - выбрасывает, если произошла ошибка при получении данных из аутентификации пользователя.
    • getAllPostByCreateAt

      public List<Post> getAllPostByCreateAt(org.springframework.data.domain.PageRequest pageRequest)
      Позволяет получить список всех постов отсортированных по дате создания с пагинацией страниц.
      Specified by:
      getAllPostByCreateAt in interface PostService
      Parameters:
      pageRequest - пагинация запроса.
      Returns:
      список объектов Post.
    • getAllPostByCreateAt

      public List<Post> getAllPostByCreateAt()
      Позволяет получить список всех постов отсортированных по дате создания.
      Specified by:
      getAllPostByCreateAt in interface PostService
      Returns:
      список объектов Post.
    • getPostByUserIds

      public List<Post> getPostByUserIds(List<Long> userIds, org.springframework.data.domain.PageRequest pageRequest)
      Позволяет получить список постов по идентификаторам их создателей сортируя по дате с пагинацией страниц.
      Specified by:
      getPostByUserIds in interface PostService
      Parameters:
      userIds - список идентификаторов создателей постов.
      pageRequest - пагинация запроса.
      Returns:
      список объектов Post.
    • getPostByUserIds

      public List<Post> getPostByUserIds(List<Long> userIds)
      Позволяет получить список постов по идентификаторам их создателей сортируя по дате.
      Specified by:
      getPostByUserIds in interface PostService
      Parameters:
      userIds - список идентификаторов создателей постов.
      Returns:
      список объектов Post.