Skip to content
Snippets Groups Projects
Commit 9a833160 authored by OZGCloud's avatar OZGCloud
Browse files

OZG-496 Create Kommentar; work in progress

parent c6862de9
No related branches found
No related tags found
No related merge requests found
package de.itvsh.goofy.kommentar;
import static de.itvsh.goofy.common.ValidationMessageCodes.*;
import java.time.ZonedDateTime;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonProperty.Access;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.ToString;
@Getter
@Builder(toBuilder = true)
@NoArgsConstructor(access = AccessLevel.PRIVATE)
@AllArgsConstructor(access = AccessLevel.PACKAGE)
@ToString
public class Kommentar {
@JsonIgnore
private String id;
@JsonIgnore
private String createdBy;
@JsonProperty(access = Access.READ_ONLY)
private String createdByName;
@JsonProperty(access = Access.READ_ONLY)
private ZonedDateTime createdAt;
@NotNull(message = FIELD_IS_NULL)
@Size(min = 1, message = FIELD_SIZE)
private String text;
}
package de.itvsh.goofy.kommentar;
import javax.validation.Valid;
import com.fasterxml.jackson.annotation.JsonIgnore;
import de.itvsh.goofy.common.command.CommandOrder;
import de.itvsh.goofy.common.command.CommandStatus;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
@Builder(toBuilder = true)
@Getter
@NoArgsConstructor(access = AccessLevel.PRIVATE)
@AllArgsConstructor(access = AccessLevel.PACKAGE)
@EqualsAndHashCode
class KommentarCommand {
@JsonIgnore
private String id;
private CommandOrder order;
@JsonIgnore
private CommandStatus status;
@Valid
private Kommentar kommentar;
}
package de.itvsh.goofy.kommentar;
import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import de.itvsh.goofy.common.command.CommandController;
@RestController
@RequestMapping(KommentarCommandController.KOMMENTAR_COMMANDS)
public class KommentarCommandController {
static final String KOMMENTAR_COMMANDS = "/api/kommentars/{kommentarId}/commands";
@RestController
@RequestMapping(KommentarCommandByVorgangController.KOMMENTAR_COMMANDS_BY_VORGANG)
public static class KommentarCommandByVorgangController {
static final String KOMMENTAR_COMMANDS_BY_VORGANG = "/api/vorgangs/{vorgangId}/kommentarCommands";
@Autowired
private KommentarService service;
@PostMapping()
public ResponseEntity<Void> createCommand(@RequestBody KommentarCommand command, @PathVariable String vorgangId) {
var created = service.createCreateCommand(vorgangId, command);
return ResponseEntity.created(linkTo(CommandController.class).slash(created.getId()).toUri()).build();
}
}
}
package de.itvsh.goofy.kommentar;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping(KommentarController.KOMMENTAR_PATH)
public class KommentarController {
static final String KOMMENTAR_PATH = "/api/kommentars"; // NOSONAR
@Autowired
private KommentarService service;
}
package de.itvsh.goofy.kommentar;
public class KommentarService {
public KommentarCommand createCreateCommand(String vorgangId, KommentarCommand command) {
// TODO Auto-generated method stub
return null;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment