config.ts 878 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. import JobContext from "@/JobContext";
  2. import { NewsStatus } from "./NewsStatus";
  3. import getData from "./getData";
  4. export default {
  5. documentVersion: 3,
  6. query: {
  7. published() {
  8. return this.where({ status: NewsStatus.PUBLISHED });
  9. },
  10. newest(showToNewUsers = false) {
  11. const query = this.published().sort({ createdAt: "desc" });
  12. if (showToNewUsers)
  13. return query.where({ showToNewUsers: !!showToNewUsers });
  14. return query;
  15. }
  16. },
  17. jobConfig: {
  18. published: {
  19. async method() {
  20. return this.find().published();
  21. },
  22. hasPermission: true
  23. },
  24. newest: {
  25. async method(
  26. context: JobContext,
  27. payload?: { showToNewUsers?: boolean; limit?: number }
  28. ) {
  29. const query = this.find().newest(payload?.showToNewUsers);
  30. if (payload?.limit) return query.limit(payload?.limit);
  31. return query;
  32. },
  33. hasPermission: true
  34. }
  35. },
  36. getData
  37. };