Skip to content
This repository has been archived by the owner on Jul 29, 2021. It is now read-only.

Commit

Permalink
feat(pages): set a page as an api homepage
Browse files Browse the repository at this point in the history
  • Loading branch information
NicolasGeraud committed Mar 2, 2017
1 parent 5f0c9b8 commit 83bd764
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 8 deletions.
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,12 @@
<name>Gravitee.io APIM - Repository - MongoDB</name>

<properties>
<gravitee-repository.version>1.3.0</gravitee-repository.version>
<gravitee-repository.version>1.4.0-SNAPSHOT</gravitee-repository.version>
<embed.mongo.version>1.50.2</embed.mongo.version>
<mongo.version>3.0.4</mongo.version>
<spring.data.mongodb.version>1.7.2.RELEASE</spring.data.mongodb.version>
<dozer.version>5.4.0</dozer.version>
<gravitee-repository-test.version>1.3.0</gravitee-repository-test.version>
<gravitee-repository-test.version>1.4.0-SNAPSHOT</gravitee-repository-test.version>
<maven-dependency-plugin.version>2.10</maven-dependency-plugin.version>
</properties>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@

/**
* @author Titouan COMPIEGNE (titouan.compiegne at graviteesource.com)
* @author Nicolas GERAUD (nicolas.geraud at graviteesource.com)
* @author GraviteeSource Team
*/
@Component
Expand Down Expand Up @@ -88,15 +89,13 @@ public Page create(Page page) throws TechnicalException {

@Override
public Page update(Page page) throws TechnicalException {
if(page == null || page.getName() == null){
throw new IllegalStateException("Page to update must have a name");
if(page == null){
throw new IllegalArgumentException("Page must not be null");
}

// Search team by name
PageMongo pageMongo = internalPageRepo.findOne(page.getId());

if(pageMongo == null){
throw new IllegalStateException(String.format("No page found with name [%s]", page.getId()));
throw new IllegalArgumentException(String.format("No page found with id [%s]", page.getId()));
}

try{
Expand All @@ -107,6 +106,7 @@ public Page update(Page page) throws TechnicalException {
pageMongo.setUpdatedAt(page.getUpdatedAt());
pageMongo.setOrder(page.getOrder());
pageMongo.setPublished(page.isPublished());
pageMongo.setHomepage(page.isHomepage());
if(page.getSource() != null) {
pageMongo.setSource(convert(page.getSource()));
} else {
Expand Down Expand Up @@ -161,4 +161,10 @@ private PageConfigurationMongo convert(PageConfiguration pageConfiguration) {
pageConfigurationMongo.setTryItURL(pageConfiguration.getTryItURL());
return pageConfigurationMongo;
}

@Override
public Collection<Page> findByHomepage(String apiId, boolean isHomepage) throws TechnicalException {
return mapper.collection2list(internalPageRepo.findByHomepage(apiId, isHomepage), PageMongo.class, Page.class);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ public class PageMongo extends Auditable {

private PageConfigurationMongo configuration;

private boolean homepage;

public String getId() {
return id;
}
Expand Down Expand Up @@ -136,6 +138,14 @@ public void setConfiguration(PageConfigurationMongo configuration) {
this.configuration = configuration;
}

public boolean isHomepage() {
return homepage;
}

public void setHomepage(boolean homepage) {
this.homepage = homepage;
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
Expand All @@ -160,6 +170,7 @@ public String toString() {
sb.append(", order='").append(order).append('\'');
sb.append(", lastContributor='").append(lastContributor).append('\'');
sb.append(", api='").append(api).append('\'');
sb.append(", homepage='").append(homepage).append('\'');
sb.append('}');
return sb.toString();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import org.springframework.data.mongodb.repository.Query;
import org.springframework.stereotype.Repository;

import java.util.Collection;
import java.util.List;

/**
Expand All @@ -30,5 +31,8 @@
public interface PageMongoRepository extends MongoRepository<PageMongo, String>, PageMongoRepositoryCustom {

@Query("{ 'api' : ?0}")
List<PageMongo> findByApi(String apiName);
List<PageMongo> findByApi(String apiId);

@Query("{ 'api': ?0, 'homepage': ?1}")
List<PageMongo> findByHomepage(String apiId, boolean isHomepage);
}

0 comments on commit 83bd764

Please sign in to comment.