``` # 給開發者的資訊 ## 開發環境建置 安裝下列的應用程式來建構開發環境: | 應用程式名稱 | 應用程式版本(有特定版本才填寫) | 安裝要求 | | ------- | ------- | ------- | |[Golang](<https://golang.org/dl/>)|1.14 以上|必要| |[GoLand](<https://www.jetbrains.com/go/promo/>)| |如果使用 GoLand * 推薦給新手| |[Sublime Text 3](<https://classic.yarnpkg.com/zh-Hant/>)| |如果使用 Sublime Text,記得安裝 Gofmt 套件| |[docker compose](<https://docs.docker.com/compose/install/>)| |使用 `docker compose` 直襲本專案時| ### Sublime Text 3 的套件 要使用 Sublime Text 3,請安裝以下套件。 | 套件 | 安裝要求 | | ------- | ------- | |[Gofmt](<https://packagecontrol.io/packages/Gofmt>)|可選| |[ConvertToUTF8](<https://ephrain.net/sublime-text-%E8%AE%93-sublime-text-%E6%94%AF%E6%8F%B4-big5-%E7%B7%A8%E7%A2%BC%E7%9A%84%E6%96%87%E5%AD%97%E6%AA%94/>)|可選| --- ## 安裝與設定 ### Clone Ptt-backend 專案 ```bash $ git clone <https://github.com/Ptt-official-app/Ptt-backend.git> ``` ### 下載測試伺服器靜態資料與配置設定檔 ```bash # 下載 BBS Home $ wget <http://pttapp.cc/data-archives/bbs_backup_lastest.tar.xz> # 用 xz 進行解壓縮 $ tar -Jxvf bbs_backup_lastest.tar.xz # 下載 SHM 測試資料 $ wget <http://pttapp.cc/data-archives/dump.shm.lastest.tar.bz2> # 用 bzip2 進行解壓縮 $ tar -jxvf dump.shm.lastest.tar.bz2 ``` - 設定檔預設讀取 `config_default.toml`,如果希望改成自己的設定檔請將他複製成 `config.toml` 即可。 ## 編譯與執行 請在工作目錄 `./Ptt-backend` 下執行此命令。 ### 狀況 1: 直接使用 `go build` ```bash $ go build $ ./Ptt-backend ``` #### Troubleshoot // TODO ### 狀況 2: 使用 Gitpod 開發 // TODO --- ## 生產環境/其他環境的判定 一但要上線到生產環境,請務必改掉 security 章節內的設定。 --- ## Deploy 到 Staging 環境以及正式環境的方法 當下表左欄所列的分支更新後,分支和網站將會自動被更新。 | 分支 | 建置與更新的分支 | 對應站點 | | ---- | ---- | ---- | |`master` (尚未建置) ||| |`staging` (尚未建置)|| |`development`||<https://pttapp.cc>| --- ## 分支規則 只允許推送 Pull Request 到 `development` 。 在推送 Pull Request 時,請依照以下命名規則為您的分支命名 | 變更種類 | 分支的命名規則 | | ---- | ---- | |新增功能|`feature/#{ISSUE_ID}-#{branch_title_name}`| |Hotfix commit|`hotfix/#{ISSUE_ID}-#{branch_title_name}`| ### 基本分支 | 目的 | 分支 | 預覽用 URL | 誰可以發 Pull Request | 備註 | | ---- | ---- | ---- | ---- | ---- | | 開發 | development | <https://pttapp.cc> | All developers | 基本上請推送 Pull Request 到這裡 | | 正式版預覽 | staging | | Only administrators | 對於正式版釋出前的最終確認,禁止管理員以外的人推送 Pull Request。 | | 正式版 | master | | Only administrators | 禁止管理員以外的人推送 Pull Request | ### 系統所使用的分支 | 目的 | 分支 | 預覽用 URL | 備註 | | ---- | -------- | ---- | ---- | ```
#28 Remove stale hashes in go.sum
*:clap: 解決掉的 issue / Resolved Issues* N/A *:memo: 相關的 issue / Related Issues* N/A *:pick: 變更內容 / Details of Changes* • Remove stale hashes in go.sum
``` # 給開發者的資訊 ## 開發環境建置 安裝下列的應用程式來建構開發環境: | 應用程式名稱 | 應用程式版本(有特定版本才填寫) | 安裝要求 | | ------- | ------- | ------- | |[Golang](<https://golang.org/dl/>)|1.14 以上|必要| |[GoLand](<https://www.jetbrains.com/go/promo/>)| |如果使用 GoLand * 推薦給新手| |[Sublime Text 3](<https://classic.yarnpkg.com/zh-Hant/>)| |如果使用 Sublime Text,記得安裝 Gofmt 套件| |[docker compose](<https://docs.docker.com/compose/install/>)| |使用 `docker compose` 直襲本專案時| ### Sublime Text 3 的套件 要使用 Sublime Text 3,請安裝以下套件。 | 套件 | 安裝要求 | | ------- | ------- | |[Gofmt](<https://packagecontrol.io/packages/Gofmt>)|可選| |[ConvertToUTF8](<https://ephrain.net/sublime-text-%E8%AE%93-sublime-text-%E6%94%AF%E6%8F%B4-big5-%E7%B7%A8%E7%A2%BC%E7%9A%84%E6%96%87%E5%AD%97%E6%AA%94/>)|可選| --- ## 安裝與設定 ### Clone Ptt-backend 專案 ```bash $ git clone <https://github.com/Ptt-official-app/Ptt-backend.git> ``` ### 下載測試伺服器靜態資料與配置設定檔 ```bash # 下載 BBS Home $ wget <http://pttapp.cc/data-archives/bbs_backup_lastest.tar.xz> # 用 xz 進行解壓縮 $ tar -Jxvf bbs_backup_lastest.tar.xz # 下載 SHM 測試資料 $ wget <http://pttapp.cc/data-archives/dump.shm.lastest.tar.bz2> # 用 bzip2 進行解壓縮 $ tar -jxvf dump.shm.lastest.tar.bz2 ``` - 設定檔預設讀取 `config_default.toml`,如果希望改成自己的設定檔請將他複製成 `config.toml` 即可。 ## 編譯與執行 請在工作目錄 `./Ptt-backend` 下執行此命令。 ### 狀況 1: 直接使用 `go build` ```bash $ go build $ ./Ptt-backend ``` #### Troubleshoot // TODO ### 狀況 2: 使用 Gitpod 開發 // TODO --- ## 生產環境/其他環境的判定 一但要上線到生產環境,請務必改掉 security 章節內的設定。 --- ## Deploy 到 Staging 環境以及正式環境的方法 當下表左欄所列的分支更新後,分支和網站將會自動被更新。 | 分支 | 建置與更新的分支 | 對應站點 | | ---- | ---- | ---- | |`master` (尚未建置) ||| |`staging` (尚未建置)|| |`development`||<https://pttapp.cc>| --- ## 分支規則 只允許推送 Pull Request 到 `development` 。 在推送 Pull Request 時,請依照以下命名規則為您的分支命名 | 變更種類 | 分支的命名規則 | | ---- | ---- | |新增功能|`feature/#{ISSUE_ID}-#{branch_title_name}`| |Hotfix commit|`hotfix/#{ISSUE_ID}-#{branch_title_name}`| ### 基本分支 | 目的 | 分支 | 預覽用 URL | 誰可以發 Pull Request | 備註 | | ---- | ---- | ---- | ---- | ---- | | 開發 | development | <https://pttapp.cc> | All developers | 基本上請推送 Pull Request 到這裡 | | 正式版預覽 | staging | | Only administrators | 對於正式版釋出前的最終確認,禁止管理員以外的人推送 Pull Request。 | | 正式版 | master | | Only administrators | 禁止管理員以外的人推送 Pull Request | ### 系統所使用的分支 | 目的 | 分支 | 預覽用 URL | 備註 | | ---- | -------- | ---- | ---- | ```
*實作細節 / Details of Implement* 在 `/v1/boards/{{board_id}}/articles` 新增參數 recommend_cnt 取得推文數 >= recommend_cnt 的文章列表 初期演算法先以 O(n) 的演算法進行實作即可, n 為某看板文章數量。 *期程 / Schedule* • 討論時間: 一週,到2/7 • 實作時間: 一天,到2/8 • 確認時間: 待定 *相關文件 / Documents* <https://docs.google.com/document/d/18DsZOyrlr5BIl2kKxZH7P2QxFLG02xL2SO0PzVHVY3k/edit#heading=h.bnhpxsiwnbey|https://docs.google.com/document/d/18DsZOyrlr5BIl2kKxZH7P2QxFLG02xL2SO0PzVHVY3k/edit#heading=h.bnhpxsiwnbey>
#37 add post token test and add .vscode gitignore
*:memo: 相關的 issue / Related Issues* • <https://github.com/Ptt-official-app/Ptt-backend/issues/36|#36> *:pick: 變更內容 / Details of Changes* • 增加 route_token_test.go • 增加 gitignore .vscode 完成了 route_token_test.go 的測試部分,使用 mock
#42 Rename variables in compliance with the convention
Signed-off-by: Te-Yu Chang <mailto:dale.teyuchang@gmail.com|dale.teyuchang@gmail.com> *:clap: 解決掉的 issue / Resolved Issues* • fix part of <https://github.com/Ptt-official-app/Ptt-backend/issues/3|#3> • fix part of <https://github.com/Ptt-official-app/Ptt-backend/issues/38|#38> *:memo: 相關的 issue / Related Issues* *:pick: 變更內容 / Details of Changes* • s/Id/ID • fix typos • remove redundant names and codes
*:clap: 解決掉的 issue / Resolved Issues* • <https://github.com/Ptt-official-app/Ptt-backend/issues/13|#13> • <https://github.com/Ptt-official-app/Ptt-backend/issues/14|#14> • <https://github.com/Ptt-official-app/Ptt-backend/issues/26|#26> *:memo: 相關的 issue / Related Issues* NA *:pick: 變更內容 / Details of Changes* • /v1/boards/{{board_id}}/articles 取得看版內文章列表的部份加上參數 author, title_contain, recommend_count_ge
*:clap: 解決掉的 issue / Resolved Issues* • <https://github.com/Ptt-official-app/Ptt-backend/issues/13|#13> • <https://github.com/Ptt-official-app/Ptt-backend/issues/14|#14> • <https://github.com/Ptt-official-app/Ptt-backend/issues/26|#26> *:memo: 相關的 issue / Related Issues* NA *:pick: 變更內容 / Details of Changes* • /v1/boards/{{board_id}}/articles 取得看版內文章列表的部份加上參數 author, title_contain, recommend_count_ge 在測試的部份有稍微做了些調整,把 mock 的部份獨立檔案來放。 另外原本 repository 的地方也寫了 struct MockRepository,個人認為這應該在 usecase 即可。 repository 要放的 mock 應該是針對 db ,目前只有刪除原本的 MockRepository,尚未新增 db mock。
我把名字都修掉了,剩下的問題需要討論一下怎麼修 <https://github.com/Ptt-official-app/Ptt-backend/pull/42>
#42 Rename variables in compliance with the convention
*:clap: 解決掉的 issue / Resolved Issues* • <https://github.com/Ptt-official-app/Ptt-backend/issues/3|#3> • <https://github.com/Ptt-official-app/Ptt-backend/issues/38|#38> *:memo: 相關的 issue / Related Issues* *:pick: 變更內容 / Details of Changes* • s/Id/ID • fix typos • remove redundant names and codes • catch errors from `Write()`
#49 Bugfix/fix verbose flag, build command, remove ./cmd from lint command
*實作細節 / Details of Implement* • 請參考 <https://github.com/ptt/pttbbs/blob/4d56e77f264960e43e060b77e442e166e5706417/mbbsd/admin.c#L1046|pttbbs admin.c> 當中的 add_board_record 的行為。 • 不做權限檢查,權限檢查交由 Ptt-backend 套件進行,但是需要進行資料結構完整性上的檢查,例如是否超過最大看板數量。 • 是否支援 Cache (SHM) 需要討論,有可能同時支援沒有 Cache 的版本。 *期程 / Schedule* (希望這個任務大概什麼時候做完,如果會卡到其他地方的功能也請在這邊提出。) • 討論時間: 三日,到 2/13 • 實作時間: 一日,到 2/14 • 確認時間: 三日,到 2/17 *相關文件 / Documents* <https://github.com/ptt/pttbbs/blob/4d56e77f264960e43e060b77e442e166e5706417/mbbsd/admin.c#L1046|pttbbs admin.c>
*:clap: 解決掉的 issue / Resolved Issues* • <https://github.com/Ptt-official-app/Ptt-backend/issues/13|#13> • <https://github.com/Ptt-official-app/Ptt-backend/issues/14|#14> • <https://github.com/Ptt-official-app/Ptt-backend/issues/26|#26> *:memo: 相關的 issue / Related Issues* NA *:pick: 變更內容 / Details of Changes* • /v1/boards/{{board_id}}/articles 取得看版內文章列表的部份加上參數 author, title_contain, recommend_count_ge 在測試的部份有稍微做了些調整,把 mock 的部份獨立檔案來放。 另外原本 repository 的地方也寫了 struct MockRepository,個人認為這應該在 usecase 即可。 repository 要放的 mock 應該是針對 db ,目前只有刪除原本的 MockRepository,尚未新增 db mock。
#49 Bugfix/fix verbose flag, build command, remove ./cmd from lint command
*:clap: 解決掉的 issue / Resolved Issues* *:memo: 相關的 issue / Related Issues* • <https://github.com/Ptt-official-app/Ptt-backend/issues/6|#6> • PR <https://github.com/Ptt-official-app/Ptt-backend/pull/46|#46> • PR <https://github.com/Ptt-official-app/Ptt-backend/pull/48|#48> *:pick: 變更內容 / Details of Changes* • 修改test-unit, test-integration ,移除 -v flag ,避免t.Log()在github action裡印出錯誤 • 修改lint command,因應main.go的搬動, 移除lint對 ./cmd的檢查 • 修改build command, 依照教學文件 , 將binary輸出至根目錄 • 修改clean command
Revision of RFC7807: HTTP Problem Details
#54 Implement #53 Get popular board list
*:memo: 相關的 issue / Related Issues* • 主 issue <https://github.com/Ptt-official-app/Ptt-backend/issues/51|#51> • 實作 issue <https://github.com/Ptt-official-app/Ptt-backend/issues/53|#53> *:pick: 變更內容 / Details of Changes* • 實作 delivery/http/route_boards.go 中的 getPopularBoardList • 實作 usecase/board.go 中的 GetPopularBoards • TODO: 依 BoardRecord 中的 number_of_user 遞減排序
golang.org
fnv - The Go Programming Language
Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.
``` package cmsys import "<http://github.com/Ptt-official-app/go-pttbbs/types|github.com/Ptt-official-app/go-pttbbs/types>" //<https://github.com/ptt/pttbbs/blob/master/include/fnv_hash.h> //commit: 6bdd36898bde207683a441cdffe2981e95de5b20 func fnv32Bytes(theBytes []byte, hval uint32) uint32 { for _, each := range theBytes { hval *= FNV_32_PRIME hval ^= uint32(each) } return hval } func fnv1a32Bytes(theBytes []byte, hval uint32) uint32 { for _, each := range theBytes { if each == 0 { break } hval ^= uint32(each) hval *= FNV_32_PRIME } return hval } func fnv1a32StrCase(theBytes []byte, hval uint32) uint32 { for _, each := range theBytes { if each == 0 { break } hval ^= uint32(types.CcharToupper(each)) hval *= FNV_32_PRIME } return hval } func fnv1a32DBCSCase(theBytes []byte, hval uint32) uint32 { isDBCS := false for _, each := range theBytes { if each == 0 { break } if isDBCS { // 2nd DBCS isDBCS = false } else { if each < 0x80 { each = types.CcharToupper(each) } else { isDBCS = true } } hval ^= uint32(each) hval *= FNV_32_PRIME } return hval } ////////// //64bits ////////// func fnv64Bytes(theBytes []byte, hval uint64) uint64 { for _, each := range theBytes { hval *= FNV_64_PRIME hval ^= uint64(each) } return hval } func fnv1a64Bytes(theBytes []byte, hval uint64) uint64 { for _, each := range theBytes { if each == 0 { break } hval ^= uint64(each) hval *= FNV_64_PRIME } return hval } func fnv1a64StrCase(theBytes []byte, hval uint64) uint64 { for _, each := range theBytes { if each == 0 { break } hval ^= uint64(types.CcharToupper(each)) hval *= FNV_64_PRIME } return hval } func fnv1a64DBCSCase(theBytes []byte, hval uint64) uint64 { isDBCS := false for _, each := range theBytes { if each == 0 { break } if isDBCS { // 2nd DBCS isDBCS = false } else { if each < 0x80 { each = types.CcharToupper(each) } else { isDBCS = true } } hval ^= uint64(each) hval *= FNV_64_PRIME } return hval } func fnv1aByte(theByte byte, hval uint32) uint32 { hval ^= uint32(theByte) hval *= FNV_32_PRIME return hval } ```
*:memo: 相關的 issue / Related Issues* • <https://github.com/Ptt-official-app/go-bbs/issues/1|#1> *:pick: 變更內容 / Details of Changes* • 利用提供的欄位pos抓取bytes array上對應的欄位資訊 • 在deserialize以及serialize上都用litten endian方式抓2 bytes • 修改testcases下.PASSWD bytes以及新增對應測試 *測試邏輯* 主要有5個遊戲類別,但只有暗棋沒有平手,所以會有3 * 5 - 1=14個欄位要被測試。 利用工具依序在這些欄位填上1到14,並同時測+16(0x10)以及+256(0x0100)以看出parsing有沒有問題
#54 Implement #53 Get popular board list
*:memo: 相關的 issue / Related Issues* • 主 issue <https://github.com/Ptt-official-app/Ptt-backend/issues/51|#51> • 實作 issue <https://github.com/Ptt-official-app/Ptt-backend/issues/53|#53> *:pick: 變更內容 / Details of Changes* • 實作 delivery/http/route_boards.go 中的 getPopularBoardList • 實作 usecase/board.go 中的 GetPopularBoards • TODO: 依 BoardRecord 中的 number_of_user 遞減排序
#69 Implement issue #58 [主線] [PTT] 實作個人看板的使用者資訊 (repository)
*:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/Ptt-backend/issues/58|#58> *:memo: 相關的 issue / Related Issues* • #主 issue <https://github.com/Ptt-official-app/Ptt-backend/issues/52|#52> • #子 issue <https://github.com/Ptt-official-app/Ptt-backend/issues/58|#58> *:pick: 變更內容 / Details of Changes* • 新增 interface `BBSUserRecord` ,用來在 `bbs.UserRecord` 外面包一層 go-bbs 尚未支援的方法,並同步調整 test 相關的 mock,包含: • NumBadPosts() int • LastCountry() string • MailboxDescription() string • ChessStatus() map[string]interface{} • Plan() map[string]interface{} • 實作 `getMoneyDiscription()` 以顯示經濟狀況
*:memo: 相關的 issue / Related Issues* • <https://github.com/Ptt-official-app/go-bbs/issues/1|#1>,應該把剩餘欄位都補足了 *:pick: 變更內容 / Details of Changes* • 利用提供的欄位pos抓取bytes array上對應的欄位資訊 • 在deserialize以及serialize上都用litten endian方式抓給定bytes • 修改testcases下.PASSWD bytes以及新增對應測試 • 修改MarshalToByte method中PosOfPttPasswdCareer抓取長度,統一跟NewUserecWithByte method一致採40 • 修改PosOfPttPasswdLawCounter位置,需補上loginview長度(4 bytes) • 因為以上原因造成原先在.PASSWD部分資料需要做shift,還有TestEncodingUserec function中hex string也要跟著變動 *測試邏輯* 主要有5個遊戲類別,有勝、負以及和三種結果,所以會有3 * 5 =15個欄位要被測試。 利用工具依序在這些欄位填上1到15,並同時測+16(0x10)以及+256(0x0100)以看出parsing有沒有問題(檢查little endian及uint16)
#70 Test: Route get boards list
*:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/Ptt-backend/issues/55|#55> *:memo: 相關的 issue / Related Issues* • <https://github.com/Ptt-official-app/Ptt-backend/issues/36|#36> *:pick: 變更內容 / Details of Changes* • Add route boards tests
#37 add post token test and add .vscode gitignore
*:memo: 相關的 issue / Related Issues* • 主 issue <https://github.com/Ptt-official-app/Ptt-backend/issues/36|#36> • 實作 issue <https://github.com/Ptt-official-app/Ptt-backend/issues/45|#45> *:pick: 變更內容 / Details of Changes* • 增加 route_token_test.go • 增加 gitignore .vscode 完成了 route_token_test.go 的測試部分,使用 mock
#70 Test: Route get boards list
*:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/Ptt-backend/issues/55|#55> *:memo: 相關的 issue / Related Issues* • <https://github.com/Ptt-official-app/Ptt-backend/issues/36|#36> *:pick: 變更內容 / Details of Changes* • Add route boards tests
#80 實作 #53 Get popular board list
*:memo: 相關的 issue / Related Issues* • 主 issue <https://github.com/Ptt-official-app/Ptt-backend/issues/51|#51> • 實作 issue <https://github.com/Ptt-official-app/Ptt-backend/issues/53|#53> *:pick: 變更內容 / Details of Changes* • 實作 delivery/http/route_boards.go 中的 getPopularBoardList • 實作 usecase/board.go 中的 GetPopularBoards • 增加 delivery/http/route_boards_test.go 中的 TestGetPopularBoardList • TODO: 依 BoardRecord 中的 number_of_user 遞減排序 因為之前再寫的時候 ptt-backend 是蠻舊版本的,所以就重新 merge、增加了簡單的測試並重發 pr。
devptt.site
Web site created using create-react-app
#85 usecase for get popular articles
*:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/Ptt-backend/issues/83|#83> *:memo: 相關的 issue / Related Issues* • 支線 <https://github.com/Ptt-official-app/Ptt-backend/issues/83|#83> • 主線 <https://github.com/Ptt-official-app/Ptt-backend/issues/50|#50> *:pick: 變更內容 / Details of Changes* • usecase 新增 article.go, 實作 GetPopularArticles() • usecase 新增 article_test.go & article_mock_test.go 以測試 usecase.GetPopularArticles() • repository 新增 article.go,定義 GetPopularArticles(),沒有實作內容 目前相關邏輯是單獨拉到 article.go,並沒有放在 board.go。 主要是覺得可以跟 board 脫鉤,但如果大家覺得沒必要的話可以再移回 board.go
#87 Add mock for repository.GetPopularArticleRecords
and repository.BBSPopularArticleRecord since go-bbs has not implemented it yet *:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/Ptt-backend/issues/86|#86> *:memo: 相關的 issue / Related Issues* • <https://github.com/Ptt-official-app/Ptt-backend/issues/50|#50> *:pick: 變更內容 / Details of Changes* • add `BBSPopularArticleRecord` to mock `bbs.PopularArticleRecord` since go-bbs has not implemented it yet • add `GetPopularArticles()` to interface `Repository`
*:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/Ptt-backend/issues/88|#88> *:pick: 變更內容 / Details of Changes* 修正測試
*相關 issue* • <https://github.com/Ptt-official-app/Ptt-backend/issues/90|#90> *原本作法的問題 / Existed Problem* 以目前 ci 的狀況看起來 errcheck fail 為大宗,目前看起來都是在 call io 相關沒有檢查 bytes 是否不為0 *實作細節 / Details of Implement* 增加 golangci.yaml 移除 io 相關 errcheck *期程 / Schedule* 無 *相關文件 / Documents* <https://golangci-lint.run/usage/configuration/|https://golangci-lint.run/usage/configuration/>
Comment on #51 [主線] [PTT] 實作熱門看板的看板列表
熱門看板實作方式目前有東西需要討論: 首先在原本的 BBS 系統當中「熱門看板」和「看板列表」是不太一樣的概念,熱門看板並不是單純的「版上人數很多的看板」,他還必須要符合一些條件,例如說他不能是隱藏看板,例如版主版或者是只限定版友進入的個人看板他就不能被列為熱門看板,再來是有些看板他可以設定成不得進入熱門看板等等。 也就是說,熱門看板的列表=篩選條件,可以透過 go-bbs 判斷後回傳,或者是應該透過 usecase 統一判斷熱門看板的商業邏輯後回傳。 因此這邊有兩種可能的實作方式: 1. go-bbs 新增 getPopularBoard 函式,統一判斷熱門看板列表 2. go-bbs 部分統一利用 getBoard 函式回傳,由 Ptt-backend 的 Usecase 透過看板屬性後在 usecase 進行判斷 以上需要請各位提供意見及討論。
*:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/Ptt-backend/issues/94|#94> *:memo: 相關的 issue / Related Issues* • <https://github.com/Ptt-official-app/Ptt-backend/issues/90|#90> *:pick: 變更內容 / Details of Changes* 移除無用函數以及簡化宣告
*:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/Ptt-backend/issues/90|#90> *:memo: 相關的 issue / Related Issues* • <https://github.com/Ptt-official-app/Ptt-backend/issues/93|#93> *:pick: 變更內容 / Details of Changes* 修正 errcheck,主要分為兩大塊 1. ResponseWriter 2. Json
*:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/Ptt-backend/issues/90|#90> *:memo: 相關的 issue / Related Issues* *:pick: 變更內容 / Details of Changes* 使用 goimports 自動修正
#106 修正了除了 interface 跟 mock 以外的 id
*:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/Ptt-backend/issues/90|#90> *:pick: 變更內容 / Details of Changes* 修正 id to ID