initial commit

This commit is contained in:
2026-04-21 06:25:33 +07:00
commit 85efdb7714
214 changed files with 6821 additions and 0 deletions

View File

@ -0,0 +1,43 @@
package id.iptek.utms.module.controller;
import id.iptek.utms.api.ApiResponse;
import id.iptek.utms.core.i18n.MessageResolver;
import id.iptek.utms.module.dto.ModuleResponse;
import id.iptek.utms.module.dto.ModuleToggleRequest;
import id.iptek.utms.module.service.ModuleRegistryService;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/api/modules")
@SecurityRequirement(name = "bearerAuth")
public class ModuleController {
private final ModuleRegistryService moduleRegistryService;
private final MessageResolver messageResolver;
public ModuleController(ModuleRegistryService moduleRegistryService, MessageResolver messageResolver) {
this.moduleRegistryService = moduleRegistryService;
this.messageResolver = messageResolver;
}
@GetMapping
@PreAuthorize("hasRole('ADMIN')")
public ApiResponse<List<ModuleResponse>> list() {
return ApiResponse.ok(messageResolver.get("module.list.success"), moduleRegistryService.listModules());
}
@PostMapping("/{code}/toggle")
@PreAuthorize("hasRole('ADMIN')")
public ApiResponse<ModuleResponse> toggle(@PathVariable String code,
@RequestBody ModuleToggleRequest request,
HttpServletRequest servletRequest) {
return ApiResponse.ok(messageResolver.get("module.toggle.success"),
moduleRegistryService.setEnabled(code, request.enabled(), servletRequest));
}
}