improvements + bookmarks

This commit is contained in:
2021-10-04 13:02:40 +02:00
parent 1fc18fdeb2
commit d3f6c86db6
48 changed files with 1542 additions and 432 deletions
@@ -34,8 +34,7 @@ import de.bstly.board.model.Vote;
import de.bstly.board.model.VoteType;
/**
* @author Lurkars
*
* The Class EntryController.
*/
@RestController
@RequestMapping("/e")
@@ -43,16 +42,28 @@ public class EntryController extends BaseController {
@Autowired
private EntryManager entryManager;
@Autowired
private EntryValidator entryValidator;
@Autowired
private VoteManager voteManager;
@Value("${bstly.board.size:30}")
private int SIZE;
@Value("${bstly.board.ranking.gravity:1.8}")
private double GRAVITY;
/**
* Ranked entries.
*
* @param pageParameter the page parameter
* @param sizeParameter the size parameter
* @param dateParameter the date parameter
* @param gravityParameter the gravity parameter
* @return the page
*/
@PreAuthorize("isAuthenticated()")
@GetMapping()
public Page<Entry> rankedEntries(@RequestParam("page") Optional<Integer> pageParameter,
@@ -64,9 +75,9 @@ public class EntryController extends BaseController {
sizeParameter = Optional.of(100);
}
Page<RankedEntry> entries = entryManager.directFetchByRanking(
dateParameter.orElse(Instant.now()), gravityParameter.orElse(GRAVITY),
pageParameter.orElse(0), sizeParameter.orElse(SIZE));
Page<RankedEntry> entries = entryManager.fetchByRanking(dateParameter.orElse(Instant.now()),
gravityParameter.orElse(GRAVITY), pageParameter.orElse(0),
sizeParameter.orElse(SIZE));
Page<Entry> transformed = new PageImpl<Entry>(
entries.getContent().stream().map(rankedEntry -> Entry.fromRankedEntry(rankedEntry))
@@ -77,22 +88,14 @@ public class EntryController extends BaseController {
return transformed;
}
@PreAuthorize("isAuthenticated()")
@GetMapping("ranked")
public Page<Entry> rankedEntries(@RequestParam("page") Optional<Integer> pageParameter,
@RequestParam("size") Optional<Integer> sizeParameter) {
if (sizeParameter.isPresent() && sizeParameter.get() > 100) {
sizeParameter = Optional.of(100);
}
Page<Entry> entries = entryManager.fetchByRanking(pageParameter.orElse(0),
sizeParameter.orElse(SIZE));
entryManager.applyMetadata(getCurrentUsername(), entries.getContent());
return entries;
}
/**
* New entries.
*
* @param pageParameter the page parameter
* @param sizeParameter the size parameter
* @param dateParameter the date parameter
* @return the page
*/
@PreAuthorize("isAuthenticated()")
@GetMapping("/new")
public Page<Entry> newEntries(@RequestParam("page") Optional<Integer> pageParameter,
@@ -109,6 +112,12 @@ public class EntryController extends BaseController {
return entries;
}
/**
* Gets the entry.
*
* @param id the id
* @return the entry
*/
@PreAuthorize("isAuthenticated()")
@GetMapping("/{id}")
public Entry getEntry(@PathVariable("id") Long id) {
@@ -119,10 +128,16 @@ public class EntryController extends BaseController {
}
entryManager.applyMetadata(getCurrentUsername(), entry);
return entry;
}
/**
* Creates the entry.
*
* @param entry the entry
* @return the entry
*/
@PreAuthorize("isAuthenticated()")
@PostMapping()
public Entry createEntry(@RequestBody Entry entry) {