Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[主線] [PTT] 實作上下箭頭推文 - usecase #231

Closed
wagaru opened this issue Jun 21, 2021 · 31 comments · Fixed by #268
Closed

[主線] [PTT] 實作上下箭頭推文 - usecase #231

wagaru opened this issue Jun 21, 2021 · 31 comments · Fixed by #268
Assignees
Labels
help wanted Extra attention is needed milestone1

Comments

@wagaru
Copy link
Collaborator

wagaru commented Jun 21, 2021

實作細節 / Details of Implement

期程 / Schedule

  • 討論時間: 二天, 到 6/23
  • 實作時間: 一天, 到 6/24
  • 確認時間: 二天, 到 6/26

相關文件 / Documents

API文件

@wagaru wagaru added the help wanted Extra attention is needed label Jun 21, 2021
@kyho4515
Copy link
Contributor

Hi,  請問這部分有人接手了嗎?如果沒有我可以幫忙

@PichuChen
Copy link
Member

麻煩你了,這部分在寫入的部分請參考原本推文的做法,在讀取的部分要增加判讀的程式這樣。

@kyho4515
Copy link
Contributor

我這邊有些細節想確認一下,
我目前的理解是先根據boardID和filename找到article, 然後根據user id找到user
再從go-bbs那邊拿到推文紀錄, 最後做判斷,
這樣是對的嗎?
目前覺得奇怪的地方在於, 這樣的話, 我好像沒有從repository拿任何東西?

@PichuChen
Copy link
Member

這些動作理論上是呼叫 repository 裡面的程式碼進行,而不是 usecase 直接呼叫 go-bbs 套件進行?

@kyho4515
Copy link
Contributor

了解,那我在跟repository那邊確認一下

@nickyanggg
Copy link
Collaborator

nickyanggg commented Jul 28, 2021

我當初理解是在這邊呼叫 usecase.repo.GetBoardArticle,然後再從結果去抓出該使用者的上箭頭以及下箭頭推文紀錄,可能以 +1、-1 的方式來代表並加總,最後得出的結果再和 appendType 比較看說是要 "送出上下箭頭推文 (呼叫 repo 的 function)" 還是 "重複送出上下箭頭推文所以 reject (可能直接回傳錯 error)"

這樣應該沒有直接摸到 go-bbs 的套件

@PichuChen
Copy link
Member

理論上沒有直接摸到 go-bbs 套件

@kyho4515
Copy link
Contributor

了解!感謝!我原本是想用usecase.GetBoardArticles去找,他回傳的type就會直接用到go-bbs的套件,那時沒注意到usecase.(repo.)GetBoardArticle

@nickyanggg
Copy link
Collaborator

用到 go-bbs 所定義的 type (interface) 應該是沒問題的,我想 @PichuChen 的意思應該是不要在 usecase 中直接呼叫 go-bbs 定義的 function,像是直接呼叫 usecase.repo.db.xxx 之類的。

@kyho4515
Copy link
Contributor

kyho4515 commented Aug 1, 2021

Hello, 還有一個問題, 如果一個user推過文, 在article裡是以user ID:↑這樣的形式出現嗎?

@PichuChen
Copy link
Member

位置好像不太對?原本推文會有個推,變成那邊該顯示上下箭頭

@kyho4515
Copy link
Contributor

kyho4515 commented Aug 1, 2021

OK. 所以應該是在user id 之前

@kyho4515
Copy link
Contributor

kyho4515 commented Aug 2, 2021

我這邊大致上完成了
最後確認一下,我最後應該是叫repo那邊的function然後得到pushRecord?

@PichuChen
Copy link
Member

對,因為你這邊是usecase, 因此呼叫底層應該呼叫repository 的

@PichuChen
Copy link
Member

@kyho4515 想問一下目前這邊狀況到哪裡了?

@kyho4515
Copy link
Contributor

我在等repository那邊的function, 如果需要的話我可以先弄個pr

@PichuChen
Copy link
Member

那先推把,另外你也可以試試看把他推成Draft

@PichuChen
Copy link
Member

我在等repository那邊的function, 如果需要的話我可以先弄個pr

Repository 那邊好了,可以幫忙REVIEW一下,可以的話我就把他merge

@kyho4515
Copy link
Contributor

我把repo PR的問題貼過來這裡討論

幾個小地方想問, PushRecord的部分要在usecase產生嗎? 如果這樣建議把return的type修一下
另外, 跟這個PR有點關係的是, 如果推文的話, 應該會有推文的text, 但我看delivery那邊似乎沒傳到usecase裏, 但repo的input有text, 這部分delivery那邊可能要改一下?還有如果有appendtype(上下箭頭)和text要寫進file裡的話, 那是不是要寫進appendtype+userID+text才是ptt推文後的樣子?
附上delivery的連結好討論一點
delivery

@PichuChen
Copy link
Member

對,在usecase產生

@kyho4515
Copy link
Contributor

另外, 跟這個PR有點關係的是, 如果推文的話, 應該會有推文的text, 但我看delivery那邊似乎沒傳到usecase裏, 但repo的input有text, 這部分delivery那邊可能要改一下?還有如果有appendtype(上下箭頭)和text要寫進file裡的話, 那是不是要寫進appendtype+userID+text才是ptt推文後的樣子?
附上delivery的連結好討論一點
delivery

那這部分呢? 特別是第二部分我不太確定

@PichuChen
Copy link
Member

這部分要確認一下

@PichuChen
Copy link
Member

UpdateUsefulness 應該是可以不用附加內文,因為他的設計理念是類似 Stackoverflow 或是 Reddit 的上下箭頭,因此內文部分交由 Usecase 自行定義即可,頂多是把內文設定新增到 config file 讓利用端可以自行設定在箭頭推文的預設文字這樣?

@kyho4515
Copy link
Contributor

OK. 所以他跟一般ptt上的推文不太一樣?

另外PushRecord的部分, 目前只有interface, 沒有對應的struct, TODO是寫用bbs.PushRecord, 不過go-bbs那邊好像也還沒實作

@PichuChen
Copy link
Member

Repo那邊不是已經實作好了嗎?

@kyho4515
Copy link
Contributor

kyho4515 commented Aug 29, 2021

目前看起來只有這個?
PushRecord
(剛剛貼到我那邊的repo, 不過內容是一樣的)

@PichuChen
Copy link
Member

kyho4515 added a commit to kyho4515/Ptt-backend that referenced this issue Aug 30, 2021
@kyho4515
Copy link
Contributor

repo的PushRecord是直接傳nil, 我這邊要造一個正確的?還是我一樣nil直接return回去就好?

@PichuChen
Copy link
Member

repo的PushRecord是直接傳nil, 我這邊要造一個正確的?還是我一樣nil直接return回去就好?

不是你這邊造啊,呼叫的方向是由 usecase 呼叫 repository?

@kyho4515
Copy link
Contributor

對, 但現在repo的function如果執行正確, 回傳的是nil, nil (PushRecord, error)

@kyho4515
Copy link
Contributor

我先推了一個版本, 再看要怎麼改吧

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed milestone1
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants