parent
dea039601c
commit
de0aac4769
@ -0,0 +1,165 @@
|
|||||||
|
package SAE.ApiREST.WebService.controller;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.http.MediaType;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import SAE.ApiREST.WebService.exception.ArticleException;
|
||||||
|
import SAE.ApiREST.WebService.model.Article;
|
||||||
|
import SAE.ApiREST.WebService.service.IArticleService;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Controller
|
||||||
|
@RequestMapping("/ArticleWebService")
|
||||||
|
public class ArticleControler {
|
||||||
|
@Autowired
|
||||||
|
IArticleService articleService;
|
||||||
|
|
||||||
|
// region POST
|
||||||
|
|
||||||
|
// endregion
|
||||||
|
|
||||||
|
// region PUT
|
||||||
|
|
||||||
|
// endregion
|
||||||
|
|
||||||
|
// region GET
|
||||||
|
|
||||||
|
@GetMapping(value = "/getAllArticle", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
public @ResponseBody List<Article> getAllArticles() {
|
||||||
|
ArrayList<Article> results = (ArrayList<Article>) articleService.getAllArticles();
|
||||||
|
|
||||||
|
if(results.isEmpty()) {
|
||||||
|
throw new ArticleException("No articles available");
|
||||||
|
}
|
||||||
|
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping(value = "/getArticleById/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
public @ResponseBody Article getArticlesById(@PathVariable(value = "id") Integer id) {
|
||||||
|
Article results = articleService.getArticlesById(id);
|
||||||
|
|
||||||
|
if(results == null) {
|
||||||
|
throw new ArticleException("Undefined id");
|
||||||
|
}
|
||||||
|
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping(value = "/getArticlesByTitle/{title}", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
public @ResponseBody List<Article> getArticlesByTitle(@PathVariable(value = "title") String title) {
|
||||||
|
ArrayList<Article> results = (ArrayList<Article>) articleService.getArticlesByTitle(title);
|
||||||
|
|
||||||
|
if(results.isEmpty()) {
|
||||||
|
throw new ArticleException("Undefined title");
|
||||||
|
}
|
||||||
|
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping(value = "/getArticlesByType/{type}", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
public @ResponseBody List<Article> getArticlesByType(@PathVariable(value = "type") Integer type) {
|
||||||
|
ArrayList<Article> results = (ArrayList<Article>) articleService.getArticlesByType(type);
|
||||||
|
|
||||||
|
if (results.isEmpty()) {
|
||||||
|
throw new ArticleException(String.format("No content of type %d", type));
|
||||||
|
}
|
||||||
|
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping(value = "/getVisibleArticles", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
public @ResponseBody List<Article> getVisibleArticles() {
|
||||||
|
ArrayList<Article> results = (ArrayList<Article>) articleService.getVisibleArticles();
|
||||||
|
|
||||||
|
if (results.isEmpty()) {
|
||||||
|
throw new ArticleException("No visible article");
|
||||||
|
}
|
||||||
|
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping(value = "/getInvisibleArticles", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
public @ResponseBody List<Article> getInvisibleArticles() {
|
||||||
|
ArrayList<Article> results = (ArrayList<Article>) articleService.getInvisibleArticles();
|
||||||
|
|
||||||
|
if (results.isEmpty()) {
|
||||||
|
throw new ArticleException("No invisible article");
|
||||||
|
}
|
||||||
|
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping(value = "/getArticlesAddedBefore/{dateAdded}", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
public @ResponseBody List<Article> getArticlesAddedBefore(@PathVariable(value = "dateAdded") String dateAdded) {
|
||||||
|
ArrayList<Article> results = (ArrayList<Article>) articleService.getArticlesAddedBefore(dateAdded);
|
||||||
|
|
||||||
|
if (results.isEmpty()) {
|
||||||
|
throw new ArticleException(String.format("No article added before %t", dateAdded));
|
||||||
|
}
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping(value = "/getArticlesAddedAfter/{dateAdded}", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
public @ResponseBody List<Article> getArticlesAddedAfter(@PathVariable(value = "dateAdded") String dateAdded) {
|
||||||
|
ArrayList<Article> results = (ArrayList<Article>) articleService.getArticlesAddedAfter(dateAdded);
|
||||||
|
|
||||||
|
if (results.isEmpty()) {
|
||||||
|
throw new ArticleException(String.format("No article added after %t", dateAdded));
|
||||||
|
}
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping(value = "/getArticlesAddedBetween/{beginning}/{end}", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
public @ResponseBody List<Article> getArticlesAddedAfter(@PathVariable(value = "beginning") String beginning, @PathVariable(value = "end") String end) {
|
||||||
|
ArrayList<Article> results = (ArrayList<Article>) articleService.getArticlesAddedBetween(beginning, end);
|
||||||
|
|
||||||
|
if (results.isEmpty()) {
|
||||||
|
throw new ArticleException(String.format("No article added between %t and %t", beginning, end));
|
||||||
|
}
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping(value = "/getArticlesPublishedBefore/{datePublished}", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
public @ResponseBody List<Article> getArticlesPublishedBefore(@PathVariable(value = "datePublished") String datePublished) {
|
||||||
|
ArrayList<Article> results = (ArrayList<Article>) articleService.getArticlesPublishedBefore(datePublished);
|
||||||
|
|
||||||
|
if (results.isEmpty()) {
|
||||||
|
throw new ArticleException(String.format("No article published before %t", datePublished));
|
||||||
|
}
|
||||||
|
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping(value = "/getArticlesPublishedAfter/{datePublished}", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
public @ResponseBody List<Article> getArticlesPublishedAfter(@PathVariable(value = "datePublished") String datePublished) {
|
||||||
|
ArrayList<Article> results = (ArrayList<Article>) articleService.getArticlesPublishedAfter(datePublished);
|
||||||
|
|
||||||
|
if (results.isEmpty()) {
|
||||||
|
throw new ArticleException(String.format("No article published after %t", datePublished));
|
||||||
|
}
|
||||||
|
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping(value = "/getArticlesPublishedBetween/{beginning}/{end}", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
public @ResponseBody List<Article> getArticlesPublishedAfter(@PathVariable(value = "beginning") String beginning, @PathVariable(value = "end") String end) {
|
||||||
|
ArrayList<Article> results = (ArrayList<Article>) articleService.getArticlesPublishedBetween(beginning, end);
|
||||||
|
|
||||||
|
if (results.isEmpty()) {
|
||||||
|
throw new ArticleException(String.format("No article published between %t and %t", beginning, end));
|
||||||
|
}
|
||||||
|
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
|
||||||
|
// endregion
|
||||||
|
|
||||||
|
// region DELETE
|
||||||
|
|
||||||
|
// endregion
|
||||||
|
}
|
@ -0,0 +1,17 @@
|
|||||||
|
package SAE.ApiREST.WebService.exception;
|
||||||
|
|
||||||
|
import org.springframework.web.bind.annotation.ControllerAdvice;
|
||||||
|
import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||||
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
|
import org.springframework.web.bind.annotation.ResponseStatus;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
|
||||||
|
@ControllerAdvice
|
||||||
|
public class ArticleAdvice {
|
||||||
|
@ResponseBody
|
||||||
|
@ExceptionHandler(ArticleException.class)
|
||||||
|
@ResponseStatus(HttpStatus.NOT_FOUND)
|
||||||
|
String articleHandler(ArticleException ex) {
|
||||||
|
return ex.getMessage();
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,7 @@
|
|||||||
|
package SAE.ApiREST.WebService.exception;
|
||||||
|
|
||||||
|
public class ArticleException extends RuntimeException {
|
||||||
|
public ArticleException(String exception) {
|
||||||
|
super(exception);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,24 @@
|
|||||||
|
package SAE.ApiREST.WebService.service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import SAE.ApiREST.WebService.model.Article;
|
||||||
|
|
||||||
|
public interface IArticleService {
|
||||||
|
|
||||||
|
// region GET
|
||||||
|
public List<Article> getAllArticles();
|
||||||
|
Article getArticlesById(Integer id);
|
||||||
|
public List<Article> getArticlesByTitle(String title);
|
||||||
|
public List<Article> getArticlesByType(Integer type);
|
||||||
|
public List<Article> getVisibleArticles();
|
||||||
|
public List<Article> getInvisibleArticles();
|
||||||
|
public List<Article> getArticlesAddedBefore(String dateAdded);
|
||||||
|
public List<Article> getArticlesAddedAfter(String dateAdded);
|
||||||
|
public List<Article> getArticlesAddedBetween(String beginning, String end);
|
||||||
|
public List<Article> getArticlesPublishedBefore(String datePublished);
|
||||||
|
public List<Article> getArticlesPublishedAfter(String datePublished);
|
||||||
|
public List<Article> getArticlesPublishedBetween(String beginning, String end);
|
||||||
|
// endregion
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,227 @@
|
|||||||
|
package SAE.ApiREST.WebService.service;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import SAE.ApiREST.WebService.model.Article;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class StubArticleService implements IArticleService {
|
||||||
|
|
||||||
|
// region GET
|
||||||
|
@Override
|
||||||
|
public List<Article> getAllArticles() {
|
||||||
|
List<Article> articles = new ArrayList<>();
|
||||||
|
|
||||||
|
articles.add(new Article(
|
||||||
|
"toi",
|
||||||
|
"azezeaea",
|
||||||
|
LocalDate.now().minusMonths(1),
|
||||||
|
LocalDate.now().minusMonths(2),
|
||||||
|
true,
|
||||||
|
1)
|
||||||
|
);
|
||||||
|
articles.add(new Article(
|
||||||
|
"moi",
|
||||||
|
"zaeaeaeazeza",
|
||||||
|
LocalDate.now().minusMonths(2),
|
||||||
|
LocalDate.now().minusMonths(3),
|
||||||
|
false,
|
||||||
|
1)
|
||||||
|
);
|
||||||
|
articles.add(new Article(
|
||||||
|
"eux",
|
||||||
|
"erfdhdh",
|
||||||
|
LocalDate.now().minusMonths(3),
|
||||||
|
LocalDate.now().minusMonths(4),
|
||||||
|
true,
|
||||||
|
1)
|
||||||
|
);
|
||||||
|
articles.add(new Article(
|
||||||
|
"tout ceux qui le veulent",
|
||||||
|
"azersdfgg",
|
||||||
|
LocalDate.now().minusMonths(4),
|
||||||
|
LocalDate.now().minusMonths(5),
|
||||||
|
false,
|
||||||
|
2)
|
||||||
|
);
|
||||||
|
|
||||||
|
return articles;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Article getArticlesById(Integer id) {
|
||||||
|
return new Article(
|
||||||
|
"azeaeaze",
|
||||||
|
"azezeaea",
|
||||||
|
LocalDate.now().minusMonths(1),
|
||||||
|
LocalDate.now().minusMonths(2),
|
||||||
|
true,
|
||||||
|
1);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Article> getArticlesByTitle(String title) {
|
||||||
|
List<Article> articles = new ArrayList<>();
|
||||||
|
|
||||||
|
articles.add(new Article(
|
||||||
|
title,
|
||||||
|
"azezeaea",
|
||||||
|
LocalDate.now().minusMonths(1),
|
||||||
|
LocalDate.now().minusMonths(2),
|
||||||
|
true,
|
||||||
|
1)
|
||||||
|
);
|
||||||
|
|
||||||
|
return articles;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Article> getArticlesByType(Integer type) {
|
||||||
|
List<Article> articles = new ArrayList<>();
|
||||||
|
|
||||||
|
articles.add(new Article(
|
||||||
|
"aeazeazeaz",
|
||||||
|
"azezeaea",
|
||||||
|
LocalDate.now().minusMonths(1),
|
||||||
|
LocalDate.now().minusMonths(2),
|
||||||
|
true,
|
||||||
|
type)
|
||||||
|
);
|
||||||
|
|
||||||
|
return articles;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Article> getVisibleArticles() {
|
||||||
|
List<Article> articles = new ArrayList<>();
|
||||||
|
|
||||||
|
articles.add(new Article(
|
||||||
|
"toi",
|
||||||
|
"azezeaea",
|
||||||
|
LocalDate.now().minusMonths(1),
|
||||||
|
LocalDate.now().minusMonths(2),
|
||||||
|
true,
|
||||||
|
1)
|
||||||
|
);
|
||||||
|
|
||||||
|
return articles;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Article> getInvisibleArticles() {
|
||||||
|
List<Article> articles = new ArrayList<>();
|
||||||
|
|
||||||
|
articles.add(new Article(
|
||||||
|
"toi",
|
||||||
|
"azezeaea",
|
||||||
|
LocalDate.now().minusMonths(1),
|
||||||
|
LocalDate.now().minusMonths(2),
|
||||||
|
false,
|
||||||
|
1)
|
||||||
|
);
|
||||||
|
|
||||||
|
return articles;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Article> getArticlesAddedBefore(String dateAdded) {
|
||||||
|
List<Article> articles = new ArrayList<>();
|
||||||
|
|
||||||
|
articles.add(new Article(
|
||||||
|
"toi",
|
||||||
|
"azezeaea",
|
||||||
|
LocalDate.parse(dateAdded, DateTimeFormatter.ISO_DATE).minusMonths(1),
|
||||||
|
LocalDate.now().minusMonths(2),
|
||||||
|
true,
|
||||||
|
1)
|
||||||
|
);
|
||||||
|
|
||||||
|
return articles;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Article> getArticlesAddedAfter(String dateAdded) {
|
||||||
|
List<Article> articles = new ArrayList<>();
|
||||||
|
|
||||||
|
articles.add(new Article(
|
||||||
|
"toi",
|
||||||
|
"azezeaea",
|
||||||
|
LocalDate.parse(dateAdded, DateTimeFormatter.ISO_DATE).plusMonths(1),
|
||||||
|
LocalDate.now().minusMonths(2),
|
||||||
|
true,
|
||||||
|
1)
|
||||||
|
);
|
||||||
|
|
||||||
|
return articles;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Article> getArticlesAddedBetween(String beginning, String end) {
|
||||||
|
List<Article> articles = new ArrayList<>();
|
||||||
|
|
||||||
|
articles.add(new Article(
|
||||||
|
"toi",
|
||||||
|
"azezeaea",
|
||||||
|
LocalDate.parse(beginning, DateTimeFormatter.ISO_DATE),
|
||||||
|
LocalDate.now().minusMonths(2),
|
||||||
|
true,
|
||||||
|
1)
|
||||||
|
);
|
||||||
|
|
||||||
|
return articles;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Article> getArticlesPublishedBefore(String datePublished) {
|
||||||
|
List<Article> articles = new ArrayList<>();
|
||||||
|
|
||||||
|
articles.add(new Article(
|
||||||
|
"toi",
|
||||||
|
"azezeaea",
|
||||||
|
LocalDate.now().minusMonths(1),
|
||||||
|
LocalDate.parse(datePublished, DateTimeFormatter.ISO_DATE).plusMonths(2),
|
||||||
|
true,
|
||||||
|
1)
|
||||||
|
);
|
||||||
|
|
||||||
|
return articles;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Article> getArticlesPublishedAfter(String datePublished) {
|
||||||
|
List<Article> articles = new ArrayList<>();
|
||||||
|
|
||||||
|
articles.add(new Article(
|
||||||
|
"toi",
|
||||||
|
"azezeaea",
|
||||||
|
LocalDate.now().minusMonths(1),
|
||||||
|
LocalDate.parse(datePublished, DateTimeFormatter.ISO_DATE).plusMonths(2),
|
||||||
|
true,
|
||||||
|
1)
|
||||||
|
);
|
||||||
|
|
||||||
|
return articles;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Article> getArticlesPublishedBetween(String beginning, String end) {
|
||||||
|
List<Article> articles = new ArrayList<>();
|
||||||
|
|
||||||
|
articles.add(new Article(
|
||||||
|
"toi",
|
||||||
|
"azezeaea",
|
||||||
|
LocalDate.now().minusMonths(1),
|
||||||
|
LocalDate.parse(end, DateTimeFormatter.ISO_DATE),
|
||||||
|
true,
|
||||||
|
1)
|
||||||
|
);
|
||||||
|
|
||||||
|
return articles;
|
||||||
|
}
|
||||||
|
// endregion
|
||||||
|
}
|
Loading…
Reference in new issue