-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
9ebd759
commit d159b10
Showing
6 changed files
with
142 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
package com.tibiawiki.domain.objects; | ||
|
||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; | ||
import com.tibiawiki.domain.enums.City; | ||
import lombok.Getter; | ||
import lombok.NoArgsConstructor; | ||
|
||
import java.util.Arrays; | ||
import java.util.List; | ||
|
||
@JsonIgnoreProperties({"objectType"}) | ||
@Getter | ||
@NoArgsConstructor | ||
public class Street extends WikiObject { | ||
|
||
private City city; | ||
private City city2; | ||
private String map; | ||
private String floor; | ||
|
||
@Override | ||
public List<String> fieldOrder() { | ||
return Arrays.asList("name", "implemented", "city", "city2", "map", "floor", "notes"); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
package com.tibiawiki.process; | ||
|
||
import com.tibiawiki.domain.factories.ArticleFactory; | ||
import com.tibiawiki.domain.factories.JsonFactory; | ||
import com.tibiawiki.domain.repositories.ArticleRepository; | ||
import org.json.JSONObject; | ||
|
||
import java.util.ArrayList; | ||
import java.util.List; | ||
import java.util.Optional; | ||
import java.util.stream.Collectors; | ||
import java.util.stream.Stream; | ||
|
||
public class RetrieveStreets extends RetrieveAny { | ||
|
||
private static final String CATEGORY = "Streets"; | ||
|
||
public RetrieveStreets() { | ||
super(); | ||
} | ||
|
||
public RetrieveStreets(ArticleRepository articleRepository, ArticleFactory articleFactory, JsonFactory jsonFactory) { | ||
super(articleRepository, articleFactory, jsonFactory); | ||
} | ||
|
||
public List<String> getStreetsList() { | ||
final List<String> npcsCategory = new ArrayList<>(); | ||
for (String pageName : articleRepository.getMembersFromCategory(CATEGORY)) { | ||
npcsCategory.add(pageName); | ||
} | ||
|
||
final List<String> listsCategory = new ArrayList<>(); | ||
for (String pageName : articleRepository.getMembersFromCategory(CATEGORY_LISTS)) { | ||
listsCategory.add(pageName); | ||
} | ||
|
||
return npcsCategory.stream() | ||
.filter(page -> !listsCategory.contains(page)) | ||
.collect(Collectors.toList()); | ||
} | ||
|
||
public Stream<JSONObject> getStreetsJSON() { | ||
return getStreetsJSON(ONE_BY_ONE); | ||
} | ||
|
||
public Stream<JSONObject> getStreetsJSON(boolean oneByOne) { | ||
final List<String> npcsList = getStreetsList(); | ||
|
||
return oneByOne | ||
? obtainArticlesOneByOne(npcsList) | ||
: obtainArticlesInBulk(npcsList); | ||
} | ||
|
||
public Optional<JSONObject> getStreetJSON(String pageName) { | ||
return super.getArticleJSON(pageName); | ||
} | ||
} |
44 changes: 44 additions & 0 deletions
44
src/main/java/com/tibiawiki/serviceinterface/StreetsResource.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
package com.tibiawiki.serviceinterface; | ||
|
||
import com.tibiawiki.process.RetrieveStreets; | ||
import org.json.JSONObject; | ||
|
||
import javax.ws.rs.*; | ||
import javax.ws.rs.core.MediaType; | ||
import javax.ws.rs.core.Response; | ||
|
||
@Path("/") | ||
public class StreetsResource { | ||
|
||
private RetrieveStreets retrieveStreets; | ||
|
||
public StreetsResource() { | ||
retrieveStreets = new RetrieveStreets(); | ||
} | ||
|
||
@GET | ||
@Path("/streets") | ||
@Produces(MediaType.APPLICATION_JSON) | ||
public Response getStreets(@QueryParam("expand") Boolean expand) { | ||
return Response.ok() | ||
.entity(expand != null && expand | ||
? retrieveStreets.getStreetsJSON().map(JSONObject::toMap) | ||
: retrieveStreets.getStreetsList() | ||
) | ||
.header("Access-Control-Allow-Origin", "*") | ||
.build(); | ||
} | ||
|
||
@GET | ||
@Path("/streets/{name}") | ||
@Produces(MediaType.APPLICATION_JSON) | ||
public Response getStreetsByName(@PathParam("name") String name) { | ||
return retrieveStreets.getStreetJSON(name) | ||
.map(a -> Response.ok() | ||
.entity(a.toString(2)) | ||
.header("Access-Control-Allow-Origin", "*") | ||
.build()) | ||
.orElseGet(() -> Response.status(Response.Status.NOT_FOUND) | ||
.build()); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters