Feat: demo
This commit is contained in:
@@ -1,6 +1,2 @@
|
|||||||
# Introduction to Network Programming Homework
|
# Introduction to Network Programming Homework
|
||||||
|
|
||||||
## TODO
|
|
||||||
|
|
||||||
- Connection
|
|
||||||
- Scan port
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package wordle
|
package wordle
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"net/http"
|
"net/http"
|
||||||
@@ -8,12 +9,11 @@ import (
|
|||||||
"gitea.konchin.com/ytshih/inp2025/middlewares"
|
"gitea.konchin.com/ytshih/inp2025/middlewares"
|
||||||
"gitea.konchin.com/ytshih/inp2025/utils"
|
"gitea.konchin.com/ytshih/inp2025/utils"
|
||||||
"github.com/uptrace/bunrouter"
|
"github.com/uptrace/bunrouter"
|
||||||
"github.com/vmihailenco/msgpack/v5"
|
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
)
|
)
|
||||||
|
|
||||||
type PostGuessInput struct {
|
type PostGuessInput struct {
|
||||||
Guess string `msgpack:"guess"`
|
Guess string `json:"guess"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *Handlers) PostGuess(
|
func (self *Handlers) PostGuess(
|
||||||
@@ -31,7 +31,7 @@ func (self *Handlers) PostGuess(
|
|||||||
}
|
}
|
||||||
|
|
||||||
var input PostGuessInput
|
var input PostGuessInput
|
||||||
if err := msgpack.Unmarshal(b, &input); err != nil {
|
if err := json.Unmarshal(b, &input); err != nil {
|
||||||
return middlewares.HTTPError{
|
return middlewares.HTTPError{
|
||||||
StatusCode: http.StatusBadRequest,
|
StatusCode: http.StatusBadRequest,
|
||||||
Message: "failed to unmarshal from msgpack",
|
Message: "failed to unmarshal from msgpack",
|
||||||
@@ -39,9 +39,6 @@ func (self *Handlers) PostGuess(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
zap.L().Info("input",
|
|
||||||
zap.String("input", fmt.Sprintf("%+v", input)))
|
|
||||||
|
|
||||||
username, _, ok := req.BasicAuth()
|
username, _, ok := req.BasicAuth()
|
||||||
if !ok {
|
if !ok {
|
||||||
return middlewares.HTTPError{
|
return middlewares.HTTPError{
|
||||||
@@ -50,6 +47,10 @@ func (self *Handlers) PostGuess(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
zap.L().Info("input",
|
||||||
|
zap.String("input", fmt.Sprintf("%+v", input)),
|
||||||
|
zap.String("username", username))
|
||||||
|
|
||||||
self.opCh <- &OperationGuess{
|
self.opCh <- &OperationGuess{
|
||||||
Username: username,
|
Username: username,
|
||||||
Guess: input.Guess,
|
Guess: input.Guess,
|
||||||
|
|||||||
@@ -86,14 +86,10 @@ func (m *WordleClientModel) getState() tea.Cmd {
|
|||||||
|
|
||||||
func (m *WordleClientModel) postGuess(guess string) tea.Cmd {
|
func (m *WordleClientModel) postGuess(guess string) tea.Cmd {
|
||||||
return func() tea.Msg {
|
return func() tea.Msg {
|
||||||
b, err := msgpack.Marshal(wordle.PostGuessInput{
|
_, err := m.client.R().
|
||||||
|
SetBody(wordle.PostGuessInput{
|
||||||
Guess: guess,
|
Guess: guess,
|
||||||
})
|
}).
|
||||||
if err != nil {
|
|
||||||
m.err = fmt.Errorf("failed to post guess, %w", err)
|
|
||||||
}
|
|
||||||
_, err = m.client.R().
|
|
||||||
SetBody(b).
|
|
||||||
Post("/api/guess")
|
Post("/api/guess")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
m.err = fmt.Errorf("failed to post guess, %w", err)
|
m.err = fmt.Errorf("failed to post guess, %w", err)
|
||||||
|
|||||||
Reference in New Issue
Block a user