Finshed api + tested

feature/Article
felix 1 year ago
parent 59a5432820
commit dbad7174ec

@ -5,6 +5,7 @@ import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import SAE.ApiREST.WebService.Response;
import SAE.ApiREST.WebService.exception.ArticleException;
import SAE.ApiREST.WebService.model.Article;
import SAE.ApiREST.WebService.service.IArticleService;
@ -19,15 +20,92 @@ public class ArticleControler {
IArticleService articleService;
// region POST
@PostMapping(
value = "/addArticle",
consumes = MediaType.APPLICATION_JSON_VALUE,
produces = MediaType.APPLICATION_JSON_VALUE
)
public @ResponseBody Response addArticle(
@RequestBody Article article
) {
return articleService.addArticle(article);
}
// endregion
// region PUT
@PutMapping(
value = "/updateTitle/{title}",
consumes = MediaType.APPLICATION_JSON_VALUE,
produces = MediaType.APPLICATION_JSON_VALUE
)
public @ResponseBody Article updateTitle(
@PathVariable("title") String title,
@RequestBody Article article
) {
return articleService.updateTitle(article, title);
}
@PutMapping(
value = "/updateUrl/{url}",
consumes = MediaType.APPLICATION_JSON_VALUE,
produces = MediaType.APPLICATION_JSON_VALUE
)
public @ResponseBody Article updateUrl(
@PathVariable("url") String url,
@RequestBody Article article
) {
return articleService.updateUrl(article, url);
}
@PutMapping(
value = "/updateDatePublished/{datePublished}",
consumes = MediaType.APPLICATION_JSON_VALUE,
produces = MediaType.APPLICATION_JSON_VALUE
)
public @ResponseBody Article updateDatePublished(
@PathVariable("datePublished") String datePublished,
@RequestBody Article article
) {
return articleService.updateDatePublished(article, datePublished);
}
@PutMapping(
value = "/updateDateAdded/{dateAdded}",
consumes = MediaType.APPLICATION_JSON_VALUE,
produces = MediaType.APPLICATION_JSON_VALUE
)
public @ResponseBody Article updateDateAdded(
@PathVariable("dateAdded") String dateAdded,
@RequestBody Article article
) {
return articleService.updateDateAdded(article, dateAdded);
}
@PutMapping(
value = "/changeVisibility",
consumes = MediaType.APPLICATION_JSON_VALUE,
produces = MediaType.APPLICATION_JSON_VALUE
)
public @ResponseBody Article changeVisibility(
@RequestBody Article article
) {
return articleService.changeVisibility(article);
}
@PutMapping(
value = "/updateType/{type}",
consumes = MediaType.APPLICATION_JSON_VALUE,
produces = MediaType.APPLICATION_JSON_VALUE
)
public @ResponseBody Article updateType(
@PathVariable("type") Integer type,
@RequestBody Article article
) {
return articleService.updateType(article, type);
}
// endregion
// region GET
@GetMapping(value = "/getAllArticle", produces = MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody List<Article> getAllArticles() {
ArrayList<Article> results = (ArrayList<Article>) articleService.getAllArticles();
@ -160,6 +238,94 @@ public class ArticleControler {
// endregion
// region DELETE
@DeleteMapping(
value = "/deleteArticleFromId/{id}",
produces = MediaType.APPLICATION_JSON_VALUE
)
public @ResponseBody Response deleteArticleFromId(
@PathVariable("id") Integer id
) {
return articleService.deleteArticleFromId(id);
}
@DeleteMapping(
value = "/deleteArticleFromTitle/{title}",
produces = MediaType.APPLICATION_JSON_VALUE
)
public @ResponseBody Response deleteArticleFromTitle(
@PathVariable("title") String title
) {
return articleService.deleteArticleFromTitle(title);
}
@DeleteMapping(
value = "/deleteArticleFromUrl/{url}",
produces = MediaType.APPLICATION_JSON_VALUE
)
public @ResponseBody Response deleteArticleFromUrl(
@PathVariable("url") String url
) {
return articleService.deleteArticleFromUrl(url);
}
@DeleteMapping(
value = "/deleteArticleAddedBefore/{date}",
produces = MediaType.APPLICATION_JSON_VALUE
)
public @ResponseBody Response deleteArticleAddedBefore(
@PathVariable("date") String date
) {
return articleService.deleteArticleAddedBefore(date);
}
@DeleteMapping(
value = "/deleteArticleAddedAfter/{date}",
produces = MediaType.APPLICATION_JSON_VALUE
)
public @ResponseBody Response deleteArticleAddedAfter(
@PathVariable("date") String date
) {
return articleService.deleteArticleAddedAfter(date);
}@DeleteMapping(
value = "/deleteArticleAddedBetween/{beginning}/{end}",
produces = MediaType.APPLICATION_JSON_VALUE
)
public @ResponseBody Response deleteArticleAddedBetween(
@PathVariable("beginning") String beginning,
@PathVariable("end") String end
) {
return articleService.deleteArticleAddedBetween(beginning, end);
}
@DeleteMapping(
value = "/deleteArticlePublishedBefore/{date}",
produces = MediaType.APPLICATION_JSON_VALUE
)
public @ResponseBody Response deleteArticlePublishedBefore(
@PathVariable("date") String date
) {
return articleService.deleteArticlePublishedBefore(date);
}
@DeleteMapping(
value = "/deleteArticlePublishedAfter/{date}",
produces = MediaType.APPLICATION_JSON_VALUE
)
public @ResponseBody Response deleteArticlePublishedAfter(
@PathVariable("date") String date
) {
return articleService.deleteArticlePublishedAfter(date);
}
@DeleteMapping(
value = "/deleteArticlePublishedBetween/{beginning}/{end}",
produces = MediaType.APPLICATION_JSON_VALUE
)
public @ResponseBody Response deleteArticlePublishedBetween(
@PathVariable("beginning") String beginning,
@PathVariable("end") String end
) {
return articleService.deleteArticlePublishedBetween(beginning, end);
}
// endregion
}

@ -1,7 +1,7 @@
package SAE.ApiREST.WebService.model;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
@ -12,32 +12,32 @@ import jakarta.persistence.Id;
public class Article {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
String id;
Integer id;
String title;
String URL;
String url;
LocalDate dateAdded;
LocalDate datePublished;
Boolean isVisible;
Boolean visible;
Integer type;
// ArrayList<Keyword> keywords = new ArrayList<>();
public Article() {}
public Article(String title, String URL, LocalDate dateAdded, LocalDate datePublished, Boolean visibility, Integer type) {
this.id = "1";
public Article(String title, String url, LocalDate dateAdded, LocalDate datePublished, Boolean visibility, Integer type) {
this.id = 1;
this.title = title;
this.URL = URL;
this.url = url;
this.dateAdded = dateAdded;
this.datePublished = datePublished;
this.isVisible = visibility;
this.visible = visibility;
this.type = type;
}
public String getId() {
public Integer getId() {
return this.id;
}
public void setId(String id) {
public void setId(Integer id) {
this.id = id;
}
@ -49,36 +49,36 @@ public class Article {
this.title = title;
}
public String getURL() {
return this.URL;
public String getUrl() {
return this.url;
}
public void setURL(String URL) {
this.URL = URL;
public void setUrl(String url) {
this.url = url;
}
public LocalDate getDateAdded() {
return this.dateAdded;
}
public void setDateAdded(LocalDate dateAdded) {
this.dateAdded = dateAdded;
public void setDateAdded(String dateAdded) {
this.dateAdded = LocalDate.parse(dateAdded, DateTimeFormatter.ofPattern("dd-MM-yyyy"));
}
public LocalDate getDatePublished() {
return this.datePublished;
}
public void setDatePublished(LocalDate datePublished) {
this.datePublished = datePublished;
public void setDatePublished(String datePublished) {
this.datePublished = LocalDate.parse(datePublished, DateTimeFormatter.ofPattern("dd-MM-yyyy"));
}
public Boolean isVisible() {
return this.isVisible;
public Boolean getVisible() {
return this.visible;
}
public void setVisibility(Boolean isVisible) {
this.isVisible = isVisible;
public void setVisibility(Boolean visible) {
this.visible = visible;
}
public Integer getType() {

@ -2,10 +2,24 @@ package SAE.ApiREST.WebService.service;
import java.util.List;
import SAE.ApiREST.WebService.Response;
import SAE.ApiREST.WebService.model.Article;
public interface IArticleService {
// region POST
public Response addArticle(Article article);
// endregion
// region PUT
public Article updateTitle(Article article, String title);
public Article updateUrl(Article article, String url);
public Article updateDatePublished(Article article, String datePublished);
public Article updateDateAdded(Article article, String dateAdded);
public Article changeVisibility(Article article);
public Article updateType(Article article, Integer type);
// endregion
// region GET
public List<Article> getAllArticles();
Article getArticlesById(Integer id);
@ -21,4 +35,15 @@ public interface IArticleService {
public List<Article> getArticlesPublishedBetween(String beginning, String end);
// endregion
// region DELETE
public Response deleteArticleFromId(Integer id);
public Response deleteArticleFromTitle(String title);
public Response deleteArticleFromUrl(String url);
public Response deleteArticleAddedBefore(String date);
public Response deleteArticleAddedAfter(String date);
public Response deleteArticleAddedBetween(String beginning, String end);
public Response deleteArticlePublishedBefore(String date);
public Response deleteArticlePublishedAfter(String date);
public Response deleteArticlePublishedBetween(String beginning, String end);
// endregion
}

@ -7,11 +7,66 @@ import java.util.List;
import org.springframework.stereotype.Service;
import SAE.ApiREST.WebService.Response;
import SAE.ApiREST.WebService.model.Article;
@Service
public class StubArticleService implements IArticleService {
// region POST
@Override
public Response addArticle(Article article) {
return new Response(
article.getId(),
"Article successfully created"
);
}
// endregion
// region PUT
@Override
public Article updateTitle(Article article, String title) {
Article newArticle = article;
newArticle.setTitle(title);
return newArticle;
}
@Override
public Article updateUrl(Article article, String url) {
Article newArticle = article;
newArticle.setUrl(url);
return newArticle;
}
@Override
public Article updateDatePublished(Article article, String datePublished) {
Article newArticle = article;
newArticle.setDatePublished(datePublished);
return newArticle;
}
@Override
public Article updateDateAdded(Article article, String dateAdded) {
Article newArticle = article;
newArticle.setDateAdded(dateAdded);
return newArticle;
}
@Override
public Article changeVisibility(Article article) {
Article newArticle = article;
newArticle.setVisibility(!article.getVisible());
return newArticle;
}
@Override
public Article updateType(Article article, Integer type) {
Article newArticle = article;
newArticle.setType(type);
return newArticle;
}
// endregion
// region GET
@Override
public List<Article> getAllArticles() {
@ -224,4 +279,78 @@ public class StubArticleService implements IArticleService {
return articles;
}
// endregion
}
// region DELETE
@Override
public Response deleteArticleFromId(Integer id) {
return new Response(
id,
"Article successfully deleted"
);
}
@Override
public Response deleteArticleFromUrl(String url) {
return new Response(
1,
"Article successfully deleted"
);
}
@Override
public Response deleteArticleFromTitle(String title) {
return new Response(
1,
"Article successfully deleted"
);
}
@Override
public Response deleteArticleAddedBefore(String url) {
return new Response(
1,
"Article successfully deleted"
);
}
@Override
public Response deleteArticleAddedAfter(String url) {
return new Response(
1,
"Article successfully deleted"
);
}
@Override
public Response deleteArticleAddedBetween(String beginning, String end) {
return new Response(
1,
"Article successfully deleted"
);
}
@Override
public Response deleteArticlePublishedBefore(String url) {
return new Response(
1,
"Article successfully deleted"
);
}
@Override
public Response deleteArticlePublishedAfter(String url) {
return new Response(
1,
"Article successfully deleted"
);
}
@Override
public Response deleteArticlePublishedBetween(String beginning, String end) {
return new Response(
1,
"Article successfully deleted"
);
}
// endregion
}
Loading…
Cancel
Save