Closed y2468101216 closed 3 years ago
@PichuChen 我用網路上的 base64 encode 跟你的內容不同,不知是否哪裡不一樣
這是因為 internal/repository/user.go
裡面回傳 nil, nil
所導致的。
不過實做的時候因為 go-bbs
裡面的 DB.WriteUserDraft
有點小問題導致時法被呼叫。
還是其實可以不需要呼叫DB.WriteUserDraft
?
@PichuChen 我用網路上的 base64 encode 跟你的內容不同,不知是否哪裡不一樣
可以附上說你得到什麼,然後想得到什麼的範例嗎?我也許知道原因, Base64 有 urlencoded 的變種。
@PichuChen 我用網路上的 base64 encode 跟你的內容不同,不知是否哪裡不一樣
可以附上說你得到什麼,然後想得到什麼的範例嗎?我也許知道原因, Base64 有 urlencoded 的變種。
https://www.base64encode.org/ 我用這個 encode 都可以過
發生了什麼事? / The Problem
放入 Access Token 之後, POST /v1/users/{{自己的ID}}/drafts/0 (123 的 base64編碼) 應該要成功 但出現 panic
2021/08/24 15:18:00 http: panic serving [::1]:52275: runtime error: invalid memory address or nil pointer dereference goroutine 7 [running]: net/http.(conn).serve.func1(0xc0001270e0) /usr/local/Cellar/go/1.16.6/libexec/src/net/http/server.go:1804 +0x153 panic(0x13427e0, 0x15fcda0) /usr/local/Cellar/go/1.16.6/libexec/src/runtime/panic.go:971 +0x499 github.com/Ptt-official-app/Ptt-backend/internal/delivery/http.(Delivery).updateUserDraft(0xc000060b80, 0x140f250, 0xc0002161c0, 0xc00021e500, 0xc0002002df, 0x4, 0xc0002002eb, 0x1) /Users/apple/golangProject/Ptt-backend/internal/delivery/http/route_users.go:452 +0x796 github.com/Ptt-official-app/Ptt-backend/internal/delivery/http.(Delivery).postUserDrafts(0xc000060b80, 0x140f250, 0xc0002161c0, 0xc00021e500, 0xc0002002df, 0x4, 0xc0002002eb, 0x1) /Users/apple/golangProject/Ptt-backend/internal/delivery/http/route_users.go:398 +0x17f github.com/Ptt-official-app/Ptt-backend/internal/delivery/http.(Delivery).postUsers(0xc000060b80, 0x140f250, 0xc0002161c0, 0xc00021e500) /Users/apple/golangProject/Ptt-backend/internal/delivery/http/route_users.go:46 +0x276 github.com/Ptt-official-app/Ptt-backend/internal/delivery/http.(Delivery).routeUsers(0xc000060b80, 0x140f250, 0xc0002161c0, 0xc00021e500) /Users/apple/golangProject/Ptt-backend/internal/delivery/http/route.go:116 +0x476 net/http.HandlerFunc.ServeHTTP(0xc0001983a0, 0x140f250, 0xc0002161c0, 0xc00021e500) /usr/local/Cellar/go/1.16.6/libexec/src/net/http/server.go:2049 +0x44 net/http.(ServeMux).ServeHTTP(0xc000028880, 0x140f250, 0xc0002161c0, 0xc00021e500) /usr/local/Cellar/go/1.16.6/libexec/src/net/http/server.go:2428 +0x1ad net/http.serverHandler.ServeHTTP(0xc00019a0e0, 0x140f250, 0xc0002161c0, 0xc00021e500) /usr/local/Cellar/go/1.16.6/libexec/src/net/http/server.go:2867 +0xa3 net/http.(conn).serve(0xc0001270e0, 0x140f9a0, 0xc000028940) /usr/local/Cellar/go/1.16.6/libexec/src/net/http/server.go:1932 +0x8cd created by net/http.(Server).Serve /usr/local/Cellar/go/1.16.6/libexec/src/net/http/server.go:2993 +0x39b
如何重現 / To Reproduce
curl --location --request POST 'http://localhost:8081/v1/users/test/drafts/0' \ --header 'Authorization: Bearer eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2Mjk4NzQ5NDAsInN1YiI6IlNZU09QIn0.sCR_jp6DM3DenO8F5fWHxNmnlJHi1C5qsrkLrIImzxyjoAvTnocnxxFXm_RWylvAcEuGMxP9rejcvvEaAK4h1A' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'action=update_draft' \ --data-urlencode 'raw=MTIz'
預期的行為 / Expected behavior
成功新增草稿
螢幕截圖 / Screenshots
備註
C2-7-6 跟 C2-7-7 可能是同樣問題,也許可以一起修正