Ptt-official-app / Ptt-backend

PTT APP 的後端
BSD 3-Clause "New" or "Revised" License
208 stars 67 forks source link

[BUG] C3-4-1 放入 Access Token 之後, GET /v1/classes/1 要返回分類主目錄,非主目錄的分類ID不應該回傳 1 #276

Closed y2468101216 closed 3 years ago

y2468101216 commented 3 years ago

發生了什麼事? / The Problem

放入 Access Token 之後, GET /v1/classes/1 要返回分類主目錄,非主目錄的分類ID不應該回傳 1

如何重現 / To Reproduce

curl --location --request GET 'http://localhost:8081/v1/classes/1' \ --header 'Authorization: Bearer eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2Mjk4NzQ5NDAsInN1YiI6IlNZU09QIn0.sCR_jp6DM3DenO8F5fWHxNmnlJHi1C5qsrkLrIImzxyjoAvTnocnxxFXm_RWylvAcEuGMxP9rejcvvEaAK4h1A'

預期的行為 / Expected behavior

分類id 不應該有 1

螢幕截圖 / Screenshots

截圖 2021-08-24 下午3 44 52
RandyPanGit commented 3 years ago

這裡的非主目錄的分類ID不應該回傳 1 是指圖上id為1的那一項不應該回傳嗎?

y2468101216 commented 3 years ago

我不太確定,這要問一下 @PichuChen

y2468101216 commented 3 years ago

https://www.ptt.cc/cls/1 這是主目錄 https://www.ptt.cc/cls/2870 這個不是主目錄

主目錄只有一個 主目錄以外的其他都不是主目錄

PichuChen commented 3 years ago

簡單來說就是目前回傳目錄 index 的方式是用它在 .BRD 的 offset 來判斷,因此會有問題, index = 1 會被重覆使用到。

可能的做法應該是要增加一個 base index ,可能是 1000 或是 1 ,然後在回傳 class id 的時候加上這個 class bass index 然後取回 class 資訊時扣回來這樣。

nickyanggg commented 3 years ago

大概看懂了,這個我來幫忙處理吧

PichuChen commented 3 years ago

@nickyanggg 麻煩你了

nickyanggg commented 3 years ago

@PichuChen 想先問一下 BoardHeader (包括 "是 class" 以及 "非 class" 二種) 中所存的 ClassID 代表的意義

PichuChen commented 3 years ago

@PichuChen 想先問一下 BoardHeader (包括 "是 class" 以及 "非 class" 二種) 中所存的 ClassID 代表的意義

誒,可能要看原始碼...