package sample.controller.admin;
import java.util.List;
import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import lombok.Setter;
import sample.context.AppSetting;
import sample.context.AppSetting.FindAppSetting;
import sample.context.audit.*;
import sample.context.audit.AuditActor.FindAuditActor;
import sample.context.audit.AuditEvent.FindAuditEvent;
import sample.context.orm.PagingList;
import sample.controller.ControllerSupport;
import sample.usecase.SystemAdminService;
/**
* システムに関わる社内のUI要求を処理します。
*/
@RestController
@RequestMapping("/api/admin/system")
@Setter
public class SystemAdminController extends ControllerSupport {
@Autowired
private SystemAdminService service;
/** 利用者監査ログを検索します。 */
@GetMapping(value = "/audit/actor/")
public PagingList<AuditActor> findAuditActor(@Valid FindAuditActor p) {
return service.findAuditActor(p);
}
/** イベント監査ログを検索します。 */
@GetMapping(value = "/audit/event/")
public PagingList<AuditEvent> findAuditEvent(@Valid FindAuditEvent p) {
return service.findAuditEvent(p);
}
/** アプリケーション設定一覧を検索します。 */
@GetMapping(value = "/setting/")
public List<AppSetting> findAppSetting(@Valid FindAppSetting p) {
return service.findAppSetting(p);
}
/** アプリケーション設定情報を変更します。 */
@PostMapping("/setting/{id}")
public ResponseEntity<Void> changeAppSetting(@PathVariable String id, String value) {
return resultEmpty(() -> service.changeAppSetting(id, value));
}
}