Browse Source

news update

master
gsd 1 month ago
parent
commit
213367a359
  1. 25
      src/main/java/app/controllers/bot/DiscordNewsController.java
  2. 15
      src/main/java/app/controllers/user/PublicController.java
  3. 53
      src/main/java/app/entities/db/Annonce.java
  4. 17
      src/main/java/app/repositories/AnnonceRepository.java

25
src/main/java/app/controllers/bot/DiscordNewsController.java

@ -0,0 +1,25 @@
package app.controllers.bot;
import app.entities.db.Annonce;
import app.repositories.AnnonceRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("api/bot/discord")
public class DiscordNewsController {
@Autowired
private AnnonceRepository annonceRepository;
@PostMapping("/news")
public ResponseEntity createNews(@RequestBody Annonce annonce) {
annonce.setId(null);
annonceRepository.save(annonce);
return ResponseEntity.ok().body(null);
}
}

15
src/main/java/app/controllers/user/PublicController.java

@ -4,8 +4,10 @@ import app.annotations.enums.AuthMethod;
import app.annotations.interfaces.CheckWebAccess;
import app.annotations.interfaces.CollectStatistic;
import app.annotations.interfaces.WaitAfterNext;
import app.entities.db.Annonce;
import app.entities.db.ban.Ban;
import app.entities.db.ban.BanSearchFilter;
import app.repositories.AnnonceRepository;
import app.repositories.BanRepository;
import app.services.ProfileService;
import app.services.db.BanService;
@ -30,6 +32,9 @@ public class PublicController {
BanService banService;
@Autowired
private AnnonceRepository annonceRepository;
@Autowired
private BanRepository banRepository;
@ -79,4 +84,14 @@ public class PublicController {
admin_ids.isEmpty(), admin_ids)
, HttpStatus.OK);
}
@GetMapping("/news")
public ResponseEntity<Page<Annonce>> getNews(Pageable pageable) {
return ResponseEntity.ok(annonceRepository.getNews(pageable));
}
@GetMapping("/annonces")
public ResponseEntity<Page<Annonce>> getAnnonces(Pageable pageable) {
return ResponseEntity.ok(annonceRepository.getAnnonce(pageable));
}
}

53
src/main/java/app/entities/db/Annonce.java

@ -0,0 +1,53 @@
package app.entities.db;
import com.fasterxml.jackson.annotation.JsonIgnore;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import lombok.Data;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;
@Entity
@Data
@Table(schema = "tf2_facti13", name = "annonces")
public class Annonce {
@Id
@Column(name = "id")
private Long id;
@Column(name = "header")
private String header;
@Column(name = "short")
private String shortText;
@Column(name = "full")
private String fullText;
@Column(name = "type")
private String type;
@Column(name = "redirect")
private String redirect;
@Column(name = "attachments")
private String attachments;
@Column(name = "timestamp")
private Timestamp timestamp;
@Column(name = "author")
private String author;
@Column(name = "deleted")
@JsonIgnore
private Boolean deleted;
public String[] getAttachments() {
return attachments != null?attachments.split("\n"):new String[]{};
}
}

17
src/main/java/app/repositories/AnnonceRepository.java

@ -0,0 +1,17 @@
package app.repositories;
import app.entities.db.Annonce;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
public interface AnnonceRepository extends PagingAndSortingRepository<Annonce, Long> {
@Query(value = "select n from Annonce n where n.type like 'news' and n.deleted = false order by n.id desc")
Page<Annonce> getNews(Pageable pageable);
@Query(value = "select n from Annonce n where n.type like 'reason4play' and n.deleted = false order by n.id desc")
Page<Annonce> getAnnonce(Pageable pageable);
void save(Annonce annonce);
}
Loading…
Cancel
Save