Skip to content
Snippets Groups Projects
Commit d2f34906 authored by Nicolas.Rod's avatar Nicolas.Rod
Browse files

refactor: use GlobalBanner from Solidify-Backend

parent c34f4505
No related branches found
No related tags found
1 merge request!490refactor: use GlobalBanner from Solidify-Backend
Showing
with 13 additions and 197 deletions
......@@ -17,13 +17,13 @@ import org.springframework.web.bind.annotation.RestController;
import ch.unige.solidify.SolidifyConstants;
import ch.unige.solidify.controller.ResourceController;
import ch.unige.solidify.model.GlobalBanner;
import ch.unige.solidify.rest.RestCollection;
import ch.unige.solidify.security.AdminPermissions;
import ch.unige.solidify.security.EveryonePermissions;
import ch.unige.aou.business.GlobalBannerService;
import ch.unige.aou.controller.AdminController;
import ch.unige.aou.model.settings.GlobalBanner;
import ch.unige.aou.rest.AouActionName;
import ch.unige.aou.rest.UrlPath;
......
......@@ -4,18 +4,13 @@ import java.util.List;
import java.util.Map;
import org.springframework.core.env.Environment;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import com.fasterxml.jackson.databind.ObjectMapper;
import ch.unige.solidify.SolidifyConstants;
import ch.unige.solidify.model.GlobalBanner;
import ch.unige.solidify.util.AbstractRestClientTool;
import ch.unige.aou.model.display.StructureValidationRight;
import ch.unige.aou.model.settings.GlobalBanner;
import ch.unige.aou.rest.AouActionName;
import ch.unige.aou.rest.ModuleName;
import ch.unige.aou.rest.ResourceName;
......@@ -33,6 +28,7 @@ public class GlobalBannerClientService extends ResourceClientService<GlobalBanne
return this.findAll(GlobalBanner.class);
}
@Override
public GlobalBanner getActive() {
final String url = this.getBaseUrl() + this.resourcePath + SolidifyConstants.URL_SEP + AouActionName.GET_ACTIVE;
final RestTemplate restTemplate = this.restClientTool.getClient();
......
package ch.unige.aou.service.admin;
import ch.unige.aou.model.settings.GlobalBanner;
import ch.unige.aou.model.settings.License;
import ch.unige.solidify.model.GlobalBanner;
import ch.unige.aou.service.ResourceClientServiceInterface;
public interface GlobalBannerClientServiceInterface extends ResourceClientServiceInterface<GlobalBanner> {
......
......@@ -10,7 +10,7 @@ import org.junit.jupiter.api.Test;
import org.springframework.http.HttpStatus;
import org.springframework.web.client.HttpClientErrorException;
import ch.unige.aou.model.settings.GlobalBanner;
import ch.unige.solidify.model.GlobalBanner;
class GlobalBannerAsAdminIT extends GlobalBannerIT {
......
......@@ -6,7 +6,7 @@ import java.util.stream.Collectors;
import org.junit.jupiter.api.Test;
import ch.unige.aou.model.settings.GlobalBanner;
import ch.unige.solidify.model.GlobalBanner;
class GlobalBannerAsUserIT extends GlobalBannerIT {
......
......@@ -4,7 +4,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
import java.time.OffsetDateTime;
import ch.unige.aou.model.settings.GlobalBanner;
import ch.unige.solidify.model.GlobalBanner;
public abstract class GlobalBannerIT extends AbstractAdminIT {
......
package ch.unige.aou.model.settings;
import static ch.unige.aou.AouConstants.DB_DATE_LENGTH;
import java.time.OffsetDateTime;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.CollectionTable;
import javax.persistence.Column;
import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.JoinColumn;
import javax.persistence.UniqueConstraint;
import javax.validation.constraints.NotNull;
import com.fasterxml.jackson.annotation.JsonFormat;
import ch.unige.solidify.util.StringTool;
import ch.unige.aou.AouConstants;
import ch.unige.aou.model.AouResourceNormalized;
/**
* Global Banner
*/
@Entity
public class GlobalBanner extends AouResourceNormalized {
public enum GlobalBannerType {
CRITICAL,
WARNING,
INFO
}
@NotNull
@Column(unique = true)
private String name;
private Boolean withDescription;
@Enumerated(EnumType.STRING)
@NotNull
private GlobalBanner.GlobalBannerType type;
@ElementCollection
@Column(name = AouConstants.DB_GLOBAL_BANNER_ID)
@CollectionTable(joinColumns = { @JoinColumn(name = AouConstants.DB_GLOBAL_BANNER_ID) },
uniqueConstraints = @UniqueConstraint(columnNames = { AouConstants.DB_GLOBAL_BANNER_ID, AouConstants.DB_LANGUAGE_ID }))
private List<Label> titleLabels = new ArrayList<>();
@ElementCollection
@Column(name = AouConstants.DB_GLOBAL_BANNER_ID)
@CollectionTable(joinColumns = { @JoinColumn(name = AouConstants.DB_GLOBAL_BANNER_ID) },
uniqueConstraints = @UniqueConstraint(columnNames = { AouConstants.DB_GLOBAL_BANNER_ID, AouConstants.DB_LANGUAGE_ID }))
private List<TextLabel> descriptionLabels = new ArrayList<>();
@Column(nullable = false)
private Boolean enabled;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = StringTool.DATE_TIME_FORMAT)
@Column(length = DB_DATE_LENGTH)
private OffsetDateTime startDate;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = StringTool.DATE_TIME_FORMAT)
@Column(length = DB_DATE_LENGTH)
private OffsetDateTime endDate;
/***********************************************************/
public String getName() {
return this.name;
}
public Boolean isWithDescription() {
return this.withDescription;
}
public GlobalBanner.GlobalBannerType getType() {
return this.type;
}
public List<Label> getTitleLabels() {
return this.titleLabels;
}
public List<TextLabel> getDescriptionLabels() {
return this.descriptionLabels;
}
public Boolean getEnabled() {
return this.enabled;
}
public OffsetDateTime getStartDate() {
return this.startDate;
}
public OffsetDateTime getEndDate() {
return this.endDate;
}
/***********************************************************/
public void setName(String name) {
this.name = name;
}
public void setWithDescription(Boolean withDescription) {
this.withDescription = withDescription;
}
public void setType(GlobalBanner.GlobalBannerType type) {
this.type = type;
}
public void setTitleLabels(List<Label> titleLabels) {
this.titleLabels = titleLabels;
}
public void setDescriptionLabels(List<TextLabel> descriptionLabels) {
this.descriptionLabels = descriptionLabels;
}
public void setEnabled(Boolean enabled) {
this.enabled = enabled;
}
public void setStartDate(OffsetDateTime startDate) {
this.startDate = startDate;
}
public void setEndDate(OffsetDateTime endDate) {
this.endDate = endDate;
}
@Override
public void init() {
if (this.enabled == null) {
this.enabled = true;
}
if (this.withDescription == null) {
this.withDescription = false;
}
}
}
package ch.unige.aou.specification;
import java.util.List;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import ch.unige.solidify.specification.SolidifySpecification;
import ch.unige.aou.model.settings.GlobalBanner;
public class GlobalBannerSpecification extends SolidifySpecification<GlobalBanner> {
private static final long serialVersionUID = -9215675545265165685L;
public GlobalBannerSpecification(GlobalBanner globalBanner) {
super(globalBanner);
}
@Override
protected void completePredicatesList(Root<GlobalBanner> root, CriteriaQuery<?> query, CriteriaBuilder builder,
List<Predicate> predicatesList) {
if (this.criteria.getName() != null) {
predicatesList.add(builder.like(root.get("name"), "%" + this.criteria.getName() + "%"));
}
if (this.criteria.getType() != null) {
predicatesList.add(builder.equal(root.get("type"), this.criteria.getType()));
}
if (this.criteria.getEnabled() != null) {
predicatesList.add(builder.equal(root.get("enabled"), this.criteria.getEnabled()));
}
}
}
......@@ -12,10 +12,10 @@ import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import ch.unige.solidify.exception.SolidifyHttpErrorException;
import ch.unige.solidify.model.GlobalBanner;
import ch.unige.solidify.specification.GlobalBannerSpecification;
import ch.unige.aou.model.settings.GlobalBanner;
import ch.unige.aou.repository.GlobalBannerRepository;
import ch.unige.aou.specification.GlobalBannerSpecification;
@Service
public class GlobalBannerService extends AouResourceService<GlobalBanner> {
......@@ -35,7 +35,8 @@ public class GlobalBannerService extends AouResourceService<GlobalBanner> {
}
public GlobalBanner findActiveOverlaping(GlobalBanner globalBanner) {
List<GlobalBanner> globalBannerMatching = this.globalBannerRepository.findActiveOverlaping(globalBanner.getStartDate(), globalBanner.getEndDate());
List<GlobalBanner> globalBannerMatching = this.globalBannerRepository.findActiveOverlaping(globalBanner.getStartDate(),
globalBanner.getEndDate());
globalBannerMatching = globalBannerMatching.stream().filter(g -> !g.getResId().equals(globalBanner.getResId())).collect(Collectors.toList());
if (globalBannerMatching.size() == 0) {
return null;
......
......@@ -6,10 +6,9 @@ import java.util.List;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import ch.unige.solidify.model.GlobalBanner;
import ch.unige.solidify.repository.SolidifyRepository;
import ch.unige.aou.model.settings.GlobalBanner;
@Repository
@SuppressWarnings("squid:S1214")
public interface GlobalBannerRepository extends SolidifyRepository<GlobalBanner> {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment