fr.pacifista.api.web.vote.client.clients.VoteClient Maven / Gradle / Ivy
package fr.pacifista.api.web.vote.client.clients;
import com.funixproductions.core.crud.dtos.PageDTO;
import fr.pacifista.api.web.vote.client.dtos.VoteDTO;
import fr.pacifista.api.web.vote.client.dtos.VoteWebsiteDTO;
import fr.pacifista.api.web.vote.client.dtos.VotesCountDTO;
import org.springframework.lang.Nullable;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
public interface VoteClient {
/**
* Utilisé pour récupérér les votes individuelement pour avoir l'historique des votes
* @param page la page à récupérer
* @param username le nom de l'utilisateur, si null ou vide récupère tous les votes
* @param month le mois à récupérer, si null ou vide récupère tous les votes
* @param year l'année à récupérer, si null ou vide récupère tous les votes
* @return page de votes
*/
@GetMapping
PageDTO getAll(
@RequestParam(value = "page", defaultValue = "0") String page,
@RequestParam(value = "username", required = false) @Nullable String username,
@RequestParam(value = "month", required = false) @Nullable String month,
@RequestParam(value = "year", required = false) @Nullable String year
);
/**
* Utilisé pour récupérer les votes pour les utilisateurs donnés, permet de savoir quand on utilisateur a voté et permet de lui dire de voter par exemple
* @param usernames les noms d'utilisateurs
* @return liste de votes
*/
@GetMapping("check")
List checkVotes(
@RequestParam(value = "usernames") String[] usernames
);
/**
* Utilisé pour récupérer les votes pour le top classement (top 50)
* @param month le mois, non null (1-12)
* @param year l'année, non null (yyyy)
* @return liste de votes trié par nombre de votes
*/
@GetMapping("top")
List getTop(
@RequestParam(value = "month") String month,
@RequestParam(value = "year") String year
);
@GetMapping("websites")
List getAvailableVoteWebsites();
/**
* Utilisé pour vérifier si un utilisateur a déjà voté sur un site de vote
* @param voteWebsite le site de vote
* @return le vote si l'utilisateur a déjà voté, 404 si pas de vote
*/
@GetMapping("user/{voteWebsite}")
VoteDTO checkVote(@PathVariable("voteWebsite") String voteWebsite);
/**
* Utilisé pour voter sur un site de vote
* @param voteWebsite le site de vote
* @param username le nom d'utilisateur
* @return le vote
*/
@PostMapping("user/{voteWebsite}")
VoteDTO vote(
@PathVariable("voteWebsite") String voteWebsite,
@RequestParam("username") String username
);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy