Creation of appointment implemented
This commit is contained in:
@@ -11,6 +11,7 @@ import java.util.Optional;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.commons.lang3.math.NumberUtils;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.util.Assert;
|
||||
@@ -56,8 +57,8 @@ public class GarageApiController implements WerkstattApi {
|
||||
long garageId = Long.parseLong(werkstattId);
|
||||
Optional<Long> serviceId = NumberUtils.isParsable(leistungsId) ? Optional.of(Long.parseLong(leistungsId))
|
||||
: Optional.empty();
|
||||
Optional<Date> appointmentsFrom = Optional.ofNullable(parseLocalDateTime(von));
|
||||
Optional<Date> appointmentsTill = Optional.ofNullable(parseLocalDateTime(bis));
|
||||
Optional<Date> appointmentsFrom = Optional.ofNullable(parseDate(von));
|
||||
Optional<Date> appointmentsTill = Optional.ofNullable(parseDate(bis));
|
||||
|
||||
log.info("Filter appointments by garage {}, serviceId {}, from {}, till {}", garageId, serviceId,
|
||||
appointmentsFrom, appointmentsTill);
|
||||
@@ -76,15 +77,31 @@ public class GarageApiController implements WerkstattApi {
|
||||
|
||||
@Override
|
||||
public ResponseEntity<Termin> postTermin(String werkstattId, @Valid TerminRequest termin) {
|
||||
// TODO Auto-generated method stub
|
||||
return WerkstattApi.super.postTermin(werkstattId, termin);
|
||||
|
||||
// input validation
|
||||
Assert.isTrue(NumberUtils.isParsable(werkstattId), "werkstattId ungültig");
|
||||
Assert.isTrue(NumberUtils.isParsable(termin.getLeistungsId()), "leistungsId ungültig");
|
||||
Assert.notNull(parseDate(termin.getVon()), "von ungültig");
|
||||
Assert.notNull(parseDate(termin.getBis()), "bis ungültig");
|
||||
|
||||
long garageId = Long.parseLong(werkstattId);
|
||||
long serviceId = Long.parseLong(termin.getLeistungsId());
|
||||
Date appointmentFrom = parseDate(termin.getVon());
|
||||
Date appointmentTill = parseDate(termin.getBis());
|
||||
|
||||
// create appointment if possible
|
||||
Optional<Appointment> appointment = appointmentService.createAppointment(garageId, serviceId,
|
||||
appointmentFrom, appointmentTill);
|
||||
|
||||
return appointment.map(a -> ResponseEntity.ok(AppointmentTerminMapper.toTermin(a)))
|
||||
.orElse(ResponseEntity.status(HttpStatus.CONFLICT).build());
|
||||
}
|
||||
|
||||
private Date parseLocalDateTime(String dateTimeString) {
|
||||
private Date parseDate(String dateTimeString) {
|
||||
|
||||
if (StringUtils.isNotBlank(dateTimeString)) {
|
||||
try {
|
||||
SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy hh:mm");
|
||||
SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy HH:mm");
|
||||
|
||||
return format.parse(dateTimeString);
|
||||
} catch (ParseException e) {
|
||||
|
||||
Reference in New Issue
Block a user