feat: add update and delete operations for Firearm, including error handling
This commit is contained in:
@@ -48,5 +48,16 @@ public class FirearmController {
|
||||
public FirearmResponse addFirearm(@Validated @RequestBody FirearmRequest request) {
|
||||
return firearmService.addFirearm(request);
|
||||
}
|
||||
|
||||
@Operation(description = "更新指定武器的数据")
|
||||
@PutMapping("/{id}")
|
||||
public FirearmResponse updateFirearm(@PathVariable Long id, @Validated @RequestBody FirearmRequest request) {
|
||||
return firearmService.updateFirearm(id, request);
|
||||
}
|
||||
|
||||
@Operation(description = "删除指定武器的数据")
|
||||
@DeleteMapping("/{id}")
|
||||
public void deleteFirearm(@PathVariable Long id) {
|
||||
firearmService.deleteFirearm(id);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.onixbyte.deltaforceguide.domain.dto.FirearmResponse;
|
||||
import com.onixbyte.deltaforceguide.domain.dto.PageResponse;
|
||||
import com.onixbyte.deltaforceguide.domain.entity.Firearm;
|
||||
import com.onixbyte.deltaforceguide.enumeration.FirearmType;
|
||||
import com.onixbyte.deltaforceguide.exeption.BizException;
|
||||
import com.onixbyte.deltaforceguide.repository.FirearmRepository;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
@@ -52,5 +53,28 @@ public class FirearmService {
|
||||
|
||||
return FirearmResponse.from(firearm);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public FirearmResponse updateFirearm(Long id, FirearmRequest request) {
|
||||
var firearm = firearmRepository.findById(id)
|
||||
.orElseThrow(() -> new BizException(HttpStatus.NOT_FOUND, "Firearm not found: " + id));
|
||||
|
||||
firearm.setName(request.name());
|
||||
firearm.setType(request.type());
|
||||
firearm.setLevel(request.level());
|
||||
firearm.setCalibre(request.calibre());
|
||||
firearm.setFireRate(request.fireRate());
|
||||
firearm.setArmourDamage(request.armourDamage());
|
||||
firearm.setBodyDamage(request.bodyDamage());
|
||||
firearm.setReview(request.review());
|
||||
|
||||
return FirearmResponse.from(firearmRepository.save(firearm));
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public void deleteFirearm(Long id) {
|
||||
Firearm firearm = firearmRepository.findById(id)
|
||||
.orElseThrow(() -> new BizException(HttpStatus.NOT_FOUND, "Firearm not found: " + id));
|
||||
firearmRepository.delete(firearm);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user