The mystery of the glossary addition. I really gotta figure out why it refuses to populate glossary and cover with chapters at the same time.
This commit is contained in:
		| @@ -1,5 +1,5 @@ | |||||||
| import { addDays, subDays } from "date-fns"; | import { addDays, subDays } from "date-fns"; | ||||||
| import { Book, Chapter, Editor, Announcement } from "./types"; | import { Book, Chapter, Editor, Announcement, Glossary } from "./types"; | ||||||
|  |  | ||||||
| const API_URL = process.env.NEXT_PUBLIC_API_URL as string; | const API_URL = process.env.NEXT_PUBLIC_API_URL as string; | ||||||
| const API_TOKEN = process.env.STRAPI_API_TOKEN as string; | const API_TOKEN = process.env.STRAPI_API_TOKEN as string; | ||||||
| @@ -81,9 +81,13 @@ export async function fetchBookChapterLinks(bookId: string): Promise<Book> { | |||||||
|  */ |  */ | ||||||
| export async function fetchBookById(bookId: string): Promise<Book> { | export async function fetchBookById(bookId: string): Promise<Book> { | ||||||
|   const currentDateTime = new Date().toISOString(); |   const currentDateTime = new Date().toISOString(); | ||||||
|  |   //[chapters][filters][release_datetime][$lte]=${currentDateTime} | ||||||
|   const data = await fetchFromAPI<Book>( |   const data = await fetchFromAPI<Book>( | ||||||
|     `/api/books/${bookId}?populate[chapters][filters][release_datetime][$lte]=${currentDateTime}&populate=cover` |     `/api/books/${bookId}?populate[chapters][filters][release_datetime][$lte]=${currentDateTime}&populate=cover` | ||||||
|   ); |   ); | ||||||
|  |   //I do not know why the hell it refuse to populate glossary only 1 field is allow to be populated after ???????? | ||||||
|  |   const glossary = await fetchGlossaryByBookId(bookId); | ||||||
|  |   data[0].glossary = glossary; | ||||||
|   data[0].chapters = data[0].chapters.sort((a, b) => a.number - b.number); |   data[0].chapters = data[0].chapters.sort((a, b) => a.number - b.number); | ||||||
|   return data[0]; |   return data[0]; | ||||||
| } | } | ||||||
| @@ -93,10 +97,8 @@ export async function fetchBookById(bookId: string): Promise<Book> { | |||||||
|  */ |  */ | ||||||
| export async function fetchChapterByBookId(bookId: string, chapterId: string): Promise<Chapter[]> { | export async function fetchChapterByBookId(bookId: string, chapterId: string): Promise<Chapter[]> { | ||||||
|   const currentChapter = await fetchFromAPI<Chapter>(`/api/chapters/${chapterId}?populate[book][fields][0]=title&filters[book][documentId]=${bookId}`); |   const currentChapter = await fetchFromAPI<Chapter>(`/api/chapters/${chapterId}?populate[book][fields][0]=title&filters[book][documentId]=${bookId}`); | ||||||
|   const bookWithAllChapters = await fetchFromAPI<Book>( `/api/books/${bookId}?populate[chapters][filters][number][$gte]=${ |   const bookWithAllChapters = await fetchFromAPI<Book>(`/api/books/${bookId}?populate[chapters][filters][number][$gte]=${currentChapter[0].number - 1 | ||||||
|     currentChapter[0].number - 1 |     }&populate[chapters][filters][number][$lte]=${currentChapter[0].number + 1 | ||||||
|   }&populate[chapters][filters][number][$lte]=${ |  | ||||||
|     currentChapter[0].number + 1 |  | ||||||
|     }`); |     }`); | ||||||
|   //const nextChapter = await fetchFromAPI<Chapter>(`/api/chapters?populate[book]&filters[book][id]=${bookId}&sort[number]=asc`); |   //const nextChapter = await fetchFromAPI<Chapter>(`/api/chapters?populate[book]&filters[book][id]=${bookId}&sort[number]=asc`); | ||||||
|   return bookWithAllChapters[0].chapters; |   return bookWithAllChapters[0].chapters; | ||||||
| @@ -127,3 +129,8 @@ export async function fetchAnnouncementById(announcementId: string): Promise<Ann | |||||||
|   const data = await fetchFromAPI<Announcement>(`/api/announcements/${announcementId}?`); |   const data = await fetchFromAPI<Announcement>(`/api/announcements/${announcementId}?`); | ||||||
|   return data[0]; |   return data[0]; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | export async function fetchGlossaryByBookId(bookId: string): Promise<Glossary> { | ||||||
|  |   const data = await fetchFromAPI<Glossary>(`/api/glossaries?filters[book][documentId]=${bookId}`); | ||||||
|  |   return data[0]; | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user