GalleryController.java 2.4 KB
Newer Older
1
package run.halo.app.controller.admin.api;
RYAN0UP's avatar
RYAN0UP 已提交
2

RYAN0UP's avatar
RYAN0UP 已提交
3
import io.swagger.annotations.ApiOperation;
RYAN0UP's avatar
RYAN0UP 已提交
4 5
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
RYAN0UP's avatar
RYAN0UP 已提交
6
import org.springframework.data.domain.Sort;
RYAN0UP's avatar
RYAN0UP 已提交
7
import org.springframework.data.web.PageableDefault;
RYAN0UP's avatar
RYAN0UP 已提交
8
import org.springframework.data.web.SortDefault;
RYAN0UP's avatar
RYAN0UP 已提交
9
import org.springframework.web.bind.annotation.*;
RYAN0UP's avatar
RYAN0UP 已提交
10
import run.halo.app.model.dto.GalleryDTO;
RYAN0UP's avatar
RYAN0UP 已提交
11 12
import run.halo.app.model.entity.Gallery;
import run.halo.app.model.params.GalleryParam;
RYAN0UP's avatar
RYAN0UP 已提交
13 14
import run.halo.app.model.params.GalleryQuery;
import run.halo.app.service.GalleryService;
RYAN0UP's avatar
RYAN0UP 已提交
15

RYAN0UP's avatar
RYAN0UP 已提交
16
import javax.validation.Valid;
RYAN0UP's avatar
RYAN0UP 已提交
17 18
import java.util.List;

RYAN0UP's avatar
RYAN0UP 已提交
19 20
import static org.springframework.data.domain.Sort.Direction.DESC;

RYAN0UP's avatar
RYAN0UP 已提交
21 22 23 24 25 26 27
/**
 * Gallery controller
 *
 * @author : RYAN0UP
 * @date : 2019/3/21
 */
@RestController
28
@RequestMapping("/api/admin/galleries")
RYAN0UP's avatar
RYAN0UP 已提交
29 30 31 32 33 34 35 36 37 38 39 40 41 42
public class GalleryController {

    private final GalleryService galleryService;

    public GalleryController(GalleryService galleryService) {
        this.galleryService = galleryService;
    }

    /**
     * List all galleries
     *
     * @param sort sort
     * @return all of galleries
     */
RYAN0UP's avatar
RYAN0UP 已提交
43
    @GetMapping(value = "latest")
J
johnniang 已提交
44
    public List<GalleryDTO> listGalleries(@SortDefault(sort = "updateTime", direction = Sort.Direction.DESC) Sort sort) {
RYAN0UP's avatar
RYAN0UP 已提交
45 46
        return galleryService.listDtos(sort);
    }
RYAN0UP's avatar
RYAN0UP 已提交
47

RYAN0UP's avatar
RYAN0UP 已提交
48 49 50 51 52 53
    @GetMapping
    public Page<GalleryDTO> pageBy(@PageableDefault(sort = "updateTime", direction = DESC) Pageable pageable,
                                   GalleryQuery galleryQuery) {
        return galleryService.pageDtosBy(pageable, galleryQuery);
    }

RYAN0UP's avatar
RYAN0UP 已提交
54 55 56
    /**
     * Get gallery by id.
     *
J
johnniang 已提交
57
     * @param galleryId gallery id
J
johnniang 已提交
58
     * @return GalleryDTO
RYAN0UP's avatar
RYAN0UP 已提交
59
     */
J
johnniang 已提交
60
    @GetMapping("{galleryId:\\d+}")
RYAN0UP's avatar
RYAN0UP 已提交
61
    @ApiOperation("Get gallery detail by id")
J
johnniang 已提交
62 63
    public GalleryDTO getBy(@PathVariable("galleryId") Integer galleryId) {
        return new GalleryDTO().convertFrom(galleryService.getById(galleryId));
RYAN0UP's avatar
RYAN0UP 已提交
64 65 66 67 68
    }

    /**
     * Delete gallery by id.
     *
J
johnniang 已提交
69
     * @param galleryId gallery id
RYAN0UP's avatar
RYAN0UP 已提交
70
     */
J
johnniang 已提交
71
    @DeleteMapping("{galleryId:\\d+}")
RYAN0UP's avatar
RYAN0UP 已提交
72
    @ApiOperation("Delete gallery by id")
J
johnniang 已提交
73 74
    public void deletePermanently(@PathVariable("galleryId") Integer galleryId) {
        galleryService.removeById(galleryId);
RYAN0UP's avatar
RYAN0UP 已提交
75
    }
RYAN0UP's avatar
RYAN0UP 已提交
76 77 78 79 80

    @PostMapping
    public Gallery createBy(@Valid @RequestBody GalleryParam galleryParam) {
        return galleryService.createBy(galleryParam);
    }
RYAN0UP's avatar
RYAN0UP 已提交
81
}