Class AdController

java.lang.Object
ru.skypro.homework.controller.AdController

@RestController @RequestMapping("/ads") public class AdController extends Object
Контроллер для управления объявлениями.

Обрабатывает HTTP-запросы для создания, получения, обновления и удаления объявлений.

  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    addAd(String jsonString, org.springframework.web.multipart.MultipartFile image)
    Добавление объявления.
    Получение объявлений авторизованного пользователя.
    Получение всех объявлений.
    getExtendedAd(int id)
    Получение информации об объявлении.
    void
    removeAd(int id)
    Удаление объявления.
    updateAds(int id, CreateOrUpdateAd createOrUpdateAd)
    Обновление информации об объявлении.
    byte[]
    updateImage(int id, org.springframework.web.multipart.MultipartFile image)
    Обновление картинки объявления.

    Methods inherited from class java.lang.Object

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

    • AdController

      public AdController()
  • Method Details

    • getAllAds

      @GetMapping public Ads getAllAds()
      Получение всех объявлений.
      Endpoint: GET /ads
      Returns:
      объект Ads с информацией о количестве объявлений и их списком
    • addAd

      @PostMapping(consumes="multipart/form-data", produces="application/json") @PreAuthorize("isAuthenticated()") public Ad addAd(@RequestParam("properties") String jsonString, @RequestPart("image") org.springframework.web.multipart.MultipartFile image) throws IOException
      Добавление объявления.
      Доступ к методу имеет только аутентифицированный пользователь.
      Endpoint: POST /ads
      Parameters:
      jsonString - строка с информацией объявления
      image - файл с изображением объявления
      Returns:
      объект Ad созданное объявление
      Throws:
      IOException - Если произошла ошибка при обработке изображения
    • getExtendedAd

      @GetMapping("/{id}") @PreAuthorize("isAuthenticated()") public ExtendedAd getExtendedAd(@PathVariable("id") int id)
      Получение информации об объявлении.
      Доступ к методу имеет только аутентифицированный пользователь.
      Endpoint: GET /ads/{id}
      Parameters:
      id - идентификатор объявления
      Returns:
      объект ExtendedAd полная информация об объявлении
    • removeAd

      @DeleteMapping("/{id}") @PreAuthorize("hasAuthority(\'ADMIN\') or @adService.isAdAuthor(#id, authentication.principal.username)") public void removeAd(@PathVariable("id") int id)
      Удаление объявления.
      Доступ к методу имеет пользователь с ролью ADMIN, либо автор объявления.
      Endpoint: DELETE /ads/{id}
      Parameters:
      id - идентификатор объявления
    • updateAds

      @PatchMapping("/{id}") @PreAuthorize("isAuthenticated()") public Ad updateAds(@PathVariable("id") int id, @RequestBody CreateOrUpdateAd createOrUpdateAd)
      Обновление информации об объявлении.
      Доступ к методу имеет только аутентифицированный пользователь.
      Endpoint: PATCH /ads/{id}
      Parameters:
      id - идентификатор объявления
      createOrUpdateAd - информация для обновления объявления
      Returns:
      объект Ad обновленное объявление
    • getAdsMe

      @GetMapping("/me") @PreAuthorize("isAuthenticated()") public Ads getAdsMe()
      Получение объявлений авторизованного пользователя.
      Доступ к методу имеет только аутентифицированный пользователь.
      Endpoint: GET /ads/me
      Returns:
      объект Ads с информацией о количестве объявлений и их списком
    • updateImage

      @PatchMapping("/{id}/image") @PreAuthorize("isAuthenticated()") public byte[] updateImage(@PathVariable("id") int id, @RequestParam("image") org.springframework.web.multipart.MultipartFile image) throws IOException
      Обновление картинки объявления.
      Доступ к методу имеет только аутентифицированный пользователь.
      Endpoint: PATCH /ads/{id}/image
      Parameters:
      id - идентификатор объявления
      image - файл с новой картинкой объявления
      Returns:
      объект
      invalid reference
      byte[]
      массив байтов, содержащий данные обновлённого изображения
      Throws:
      IOException - Если произошла ошибка при обработке изображения