65 lines
2.5 KiB
Java
65 lines
2.5 KiB
Java
package com.linhelp.notice;
|
|
|
|
import com.linhelp.common.api.ApiResponse;
|
|
import com.linhelp.common.security.AuthService;
|
|
import com.linhelp.common.security.CurrentUser;
|
|
import com.linhelp.common.security.RequireRole;
|
|
import org.springframework.web.bind.annotation.DeleteMapping;
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
import org.springframework.web.bind.annotation.PathVariable;
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
import org.springframework.web.bind.annotation.PutMapping;
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
import javax.validation.Valid;
|
|
import java.util.List;
|
|
|
|
@RestController
|
|
public class BannerController {
|
|
private final BannerService bannerService;
|
|
private final AuthService authService;
|
|
|
|
public BannerController(BannerService bannerService, AuthService authService) {
|
|
this.bannerService = bannerService;
|
|
this.authService = authService;
|
|
}
|
|
|
|
@RequireRole({"PLATFORM_ADMIN", "COMMUNITY_ADMIN"})
|
|
@GetMapping("/api/admin/banners")
|
|
public ApiResponse<List<BannerResponse>> adminList() {
|
|
CurrentUser user = authService.currentUser();
|
|
return ApiResponse.ok(bannerService.listAdmin(user.getCommunityId()));
|
|
}
|
|
|
|
@RequireRole({"PLATFORM_ADMIN", "COMMUNITY_ADMIN"})
|
|
@PostMapping("/api/admin/banners")
|
|
public ApiResponse<BannerResponse> create(@Valid @RequestBody BannerRequest request) {
|
|
CurrentUser user = authService.currentUser();
|
|
request.setTenantId(user.getTenantId());
|
|
request.setCommunityId(user.getCommunityId());
|
|
return ApiResponse.ok(bannerService.create(request));
|
|
}
|
|
|
|
@RequireRole({"PLATFORM_ADMIN", "COMMUNITY_ADMIN"})
|
|
@PutMapping("/api/admin/banners/{id}")
|
|
public ApiResponse<BannerResponse> update(@PathVariable Long id, @Valid @RequestBody BannerRequest request) {
|
|
CurrentUser user = authService.currentUser();
|
|
request.setTenantId(user.getTenantId());
|
|
request.setCommunityId(user.getCommunityId());
|
|
return ApiResponse.ok(bannerService.update(id, request));
|
|
}
|
|
|
|
@RequireRole({"PLATFORM_ADMIN", "COMMUNITY_ADMIN"})
|
|
@DeleteMapping("/api/admin/banners/{id}")
|
|
public ApiResponse<Void> delete(@PathVariable Long id) {
|
|
bannerService.delete(id);
|
|
return ApiResponse.ok();
|
|
}
|
|
|
|
@GetMapping("/api/mini/banners")
|
|
public ApiResponse<List<BannerResponse>> miniList() {
|
|
return ApiResponse.ok(bannerService.listEnabled(1L));
|
|
}
|
|
}
|