mirror of https://github.com/halo-dev/halo
feat: add api for update photos in batch (#1679)
Signed-off-by: Ryan Wang <i@ryanc.cc>pull/1682/head
parent
89c0cb5fb9
commit
a94dd8df7b
|
@ -4,6 +4,7 @@ import static org.springframework.data.domain.Sort.Direction.DESC;
|
||||||
|
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
|
@ -112,6 +113,22 @@ public class PhotoController {
|
||||||
return new PhotoDTO().convertFrom(photoService.update(photo));
|
return new PhotoDTO().convertFrom(photoService.update(photo));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PutMapping("/batch")
|
||||||
|
@ApiOperation("Updates photo in batch")
|
||||||
|
public List<PhotoDTO> updateBatchBy(@RequestBody List<@Valid PhotoParam> photoParams) {
|
||||||
|
List<Photo> photosToUpdate = photoParams.stream()
|
||||||
|
.filter(photoParam -> Objects.nonNull(photoParam.getId()))
|
||||||
|
.map(photoParam -> {
|
||||||
|
Photo photoToUpdate = photoService.getById(photoParam.getId());
|
||||||
|
photoParam.update(photoToUpdate);
|
||||||
|
return photoToUpdate;
|
||||||
|
})
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
return photoService.updateInBatch(photosToUpdate).stream()
|
||||||
|
.map(photo -> (PhotoDTO) new PhotoDTO().convertFrom(photo))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
@PutMapping("{photoId:\\d+}/likes")
|
@PutMapping("{photoId:\\d+}/likes")
|
||||||
@ApiOperation("Likes a photo")
|
@ApiOperation("Likes a photo")
|
||||||
@CacheLock(autoDelete = false, traceRequest = true)
|
@CacheLock(autoDelete = false, traceRequest = true)
|
||||||
|
|
|
@ -15,6 +15,8 @@ import run.halo.app.model.entity.Photo;
|
||||||
@Data
|
@Data
|
||||||
public class PhotoParam implements InputConverter<Photo> {
|
public class PhotoParam implements InputConverter<Photo> {
|
||||||
|
|
||||||
|
private Integer id;
|
||||||
|
|
||||||
@NotBlank(message = "照片名称不能为空")
|
@NotBlank(message = "照片名称不能为空")
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue