Skip to content

Commit

Permalink
SHIBUI-645: Controller implementation
Browse files Browse the repository at this point in the history
  • Loading branch information
dima767 committed Jul 27, 2018
1 parent dba9c89 commit bbbf4ca
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import edu.internet2.tier.shibboleth.admin.ui.service.MetadataResolversPositionOrderContainerService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
Expand All @@ -22,7 +23,12 @@ public class MetadataResolversPositionOrderController {

@PostMapping
public ResponseEntity<?> createOrUpdate(@RequestBody MetadataResolversPositionOrderContainer metadataResolversPositionOrderContainer) {
this.positionOrderContainerService.addOrUpdatePositionOrderContainer(metadataResolversPositionOrderContainer);
positionOrderContainerService.addOrUpdatePositionOrderContainer(metadataResolversPositionOrderContainer);
return ResponseEntity.noContent().build();
}

@GetMapping
public ResponseEntity<?> getPositionOrderContainer() {
return ResponseEntity.ok(positionOrderContainerService.retrieveExistingOrEmpty());
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package edu.internet2.tier.shibboleth.admin.ui.domain.resolvers;

import edu.internet2.tier.shibboleth.admin.ui.domain.AbstractAuditable;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
Expand All @@ -11,6 +11,9 @@
import javax.persistence.Column;
import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OrderColumn;
import java.util.ArrayList;
Expand All @@ -27,12 +30,17 @@
* @author Dmitriy Kopylenko
*/
@Entity
@EqualsAndHashCode(callSuper = true)
@EqualsAndHashCode
@NoArgsConstructor
@Getter
@Setter
@ToString
public class MetadataResolversPositionOrderContainer extends AbstractAuditable {
public class MetadataResolversPositionOrderContainer {

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
@JsonIgnore
protected Long id;

@ElementCollection
@CollectionTable(name="METADATA_RESOLVER_POSITION_ORDER", joinColumns=@JoinColumn(name="METADATA_RESOLVER_POSITION_ORDER_CONTAINER_ID"))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,11 @@ public List<MetadataResolver> getAllMetadataResolversInDefinedOrderOrUnordered()
return from(metadataResolverRepository.findAll()).toList();
}

@Override
public MetadataResolversPositionOrderContainer retrieveExistingOrEmpty() {
return getPositionOrderContainerIfExists().orElseGet(MetadataResolversPositionOrderContainer::new);
}

private Optional<MetadataResolversPositionOrderContainer> getPositionOrderContainerIfExists() {
Iterator<MetadataResolversPositionOrderContainer> iter = positionOrderContainerRepository.findAll().iterator();
return iter.hasNext() ? Optional.of(iter.next()) : Optional.empty();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
*/
public interface MetadataResolversPositionOrderContainerService {

MetadataResolversPositionOrderContainer retrieveExistingOrEmpty();

void addOrUpdatePositionOrderContainer(MetadataResolversPositionOrderContainer metadataResolversPositionOrderContainer);

List<MetadataResolver> getAllMetadataResolversInDefinedOrderOrUnordered();
Expand Down

0 comments on commit bbbf4ca

Please sign in to comment.