TeamRequest.java
package no.nav.data.team.team.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.FieldNameConstants;
import no.nav.data.common.validator.RequestElement;
import no.nav.data.common.validator.Validator;
import no.nav.data.team.contact.domain.ContactAddress;
import no.nav.data.team.team.domain.OfficeHours;
import no.nav.data.team.shared.domain.DomainObjectStatus;
import no.nav.data.team.team.domain.TeamType;
import java.time.LocalDateTime;
import java.util.List;
import java.util.UUID;
import static no.nav.data.common.utils.StringUtils.formatList;
import static org.apache.commons.lang3.StringUtils.trimToNull;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldNameConstants
public class TeamRequest implements RequestElement {
private String id;
private String name;
private String description;
private String slackChannel;
private String contactPersonIdent;
private List<ContactAddress> contactAddresses;
private String productAreaId;
private String teamOwnerIdent;
private List<String> clusterIds;
private TeamType teamType;
private LocalDateTime qaTime;
private List<String> naisTeams;
private List<TeamMemberRequest> members;
private List<String> tags;
private OfficeHours officeHours;
private DomainObjectStatus status;
private Boolean update;
@Override
public void format() {
setName(trimToNull(name));
setDescription(trimToNull(description));
setSlackChannel(trimToNull(slackChannel));
setContactPersonIdent(trimToNull(contactPersonIdent));
setProductAreaId(trimToNull(productAreaId));
setClusterIds(formatList(clusterIds));
setNaisTeams(formatList(naisTeams));
setTags(formatList(tags));
if (teamType == null) {
setTeamType(TeamType.UNKNOWN);
}
}
@Override
public void validateFieldValues(Validator<?> validator) {
validator.checkId(this);
validator.checkUUID(Fields.id, id);
validator.checkUUID(Fields.productAreaId, productAreaId);
clusterIds.forEach(id -> validator.checkUUID(Fields.clusterIds, id));
validator.checkBlank(Fields.name, name);
validator.checkBlank(Fields.description, description);
validator.validateType(Fields.members, members);
validator.validateType(Fields.contactAddresses, contactAddresses);
}
public UUID productAreaIdAsUUID() {
return productAreaId != null ? UUID.fromString(productAreaId) : null;
}
}