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) {
|
public FirearmResponse addFirearm(@Validated @RequestBody FirearmRequest request) {
|
||||||
return firearmService.addFirearm(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.dto.PageResponse;
|
||||||
import com.onixbyte.deltaforceguide.domain.entity.Firearm;
|
import com.onixbyte.deltaforceguide.domain.entity.Firearm;
|
||||||
import com.onixbyte.deltaforceguide.enumeration.FirearmType;
|
import com.onixbyte.deltaforceguide.enumeration.FirearmType;
|
||||||
|
import com.onixbyte.deltaforceguide.exeption.BizException;
|
||||||
import com.onixbyte.deltaforceguide.repository.FirearmRepository;
|
import com.onixbyte.deltaforceguide.repository.FirearmRepository;
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
@@ -52,5 +53,28 @@ public class FirearmService {
|
|||||||
|
|
||||||
return FirearmResponse.from(firearm);
|
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