platforms controller and repo, reorganizing

This commit is contained in:
2025-12-08 16:06:01 -05:00
parent 3fbd89309b
commit 355463cbc3
9 changed files with 88 additions and 8 deletions

View File

@@ -0,0 +1,55 @@
package group.goforward.battlbuilder.controllers;
import group.goforward.battlbuilder.model.Platform;
import group.goforward.battlbuilder.repos.PlatformRepository;
import group.goforward.battlbuilder.web.dto.admin.PlatformDto;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.time.OffsetDateTime;
import java.util.List;
@RestController
@RequestMapping("/api/platforms")
@CrossOrigin
public class PlatformController {
private final PlatformRepository platformRepository;
public PlatformController(PlatformRepository platformRepository) {
this.platformRepository = platformRepository;
}
@GetMapping
public List<PlatformDto> list() {
return platformRepository.findAllByOrderByLabelAsc()
.stream()
.map(p -> new PlatformDto(
p.getId(),
p.getKey(),
p.getLabel(),
p.getCreatedAt(),
p.getUpdatedAt()
))
.toList();
}
@PostMapping("/add")
public ResponseEntity<Platform> createPlatform(@RequestBody Platform platform) {
platform.setCreatedAt(OffsetDateTime.now());
platform.setUpdatedAt(OffsetDateTime.now());
Platform created = platformRepository.save(platform);
return ResponseEntity.status(HttpStatus.CREATED).body(created);
}
@DeleteMapping("/delete/{id}")
public ResponseEntity<Void> deletePlatform(@PathVariable Integer id) {
return platformRepository.findById(id)
.map(platform -> {
platformRepository.deleteById(id);
return ResponseEntity.noContent().<Void>build();
})
.orElse(ResponseEntity.notFound().build());
}
}

View File

@@ -2,7 +2,7 @@ package group.goforward.battlbuilder.controllers;
import group.goforward.battlbuilder.model.State;
import group.goforward.battlbuilder.repos.StateRepository;
import group.goforward.battlbuilder.services.StatesService;
import group.goforward.battlbuilder.services.admin.StatesService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;

View File

@@ -2,7 +2,7 @@ package group.goforward.battlbuilder.controllers;
import group.goforward.battlbuilder.model.User;
import group.goforward.battlbuilder.repos.UserRepository;
import group.goforward.battlbuilder.services.UsersService;
import group.goforward.battlbuilder.services.admin.UsersService;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

View File

@@ -0,0 +1,14 @@
package group.goforward.battlbuilder.repos;
import group.goforward.battlbuilder.model.Platform;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
import java.util.Optional;
public interface PlatformRepository extends JpaRepository<Platform, Integer> {
Optional<Platform> findByKey(String key);
List<Platform> findAllByOrderByLabelAsc();
}

View File

@@ -1,4 +1,4 @@
package group.goforward.battlbuilder.services;
package group.goforward.battlbuilder.services.admin;
import group.goforward.battlbuilder.model.State;

View File

@@ -1,4 +1,4 @@
package group.goforward.battlbuilder.services;
package group.goforward.battlbuilder.services.admin;
import group.goforward.battlbuilder.model.User;

View File

@@ -1,9 +1,9 @@
package group.goforward.battlbuilder.services.impl;
package group.goforward.battlbuilder.services.admin.impl;
import group.goforward.battlbuilder.model.State;
import group.goforward.battlbuilder.repos.StateRepository;
import group.goforward.battlbuilder.services.StatesService;
import group.goforward.battlbuilder.services.admin.StatesService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

View File

@@ -1,8 +1,8 @@
package group.goforward.battlbuilder.services.impl;
package group.goforward.battlbuilder.services.admin.impl;
import group.goforward.battlbuilder.model.User;
import group.goforward.battlbuilder.repos.UserRepository;
import group.goforward.battlbuilder.services.UsersService;
import group.goforward.battlbuilder.services.admin.UsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

View File

@@ -0,0 +1,11 @@
package group.goforward.battlbuilder.web.dto.admin;
import java.time.OffsetDateTime;
public record PlatformDto(
Integer id,
String key,
String label,
OffsetDateTime createdAt,
OffsetDateTime updatedAt
) {}