All checks were successful
Build / build (push) Successful in 2m17s
Extract business logic from gRPC handlers into a dedicated service package. Add context support throughout for cancellation and timeouts. Move models to their own package, remove hardcoded credentials from config, and simplify parsers to only handle HTML parsing.
32 lines
668 B
Go
32 lines
668 B
Go
package grpc
|
|
|
|
import (
|
|
"context"
|
|
"encoding/json"
|
|
"log/slog"
|
|
|
|
pb "schedule_converter/proto/runner"
|
|
|
|
apperr "schedule_converter/pkg/errors"
|
|
)
|
|
|
|
func (h *TaskHandler) login(ctx context.Context, payload []byte) ([]byte, error) {
|
|
var req pb.LoginPayload
|
|
if err := unmarshalPayload(payload, &req); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
log := slog.With("username", req.Username)
|
|
log.Info("登录任务")
|
|
|
|
if _, err := h.service.Login(ctx, req.Username, req.Password, req.Twfid); err != nil {
|
|
return nil, apperr.New("login", err, "登录失败")
|
|
}
|
|
|
|
log.Info("登录成功")
|
|
return json.Marshal(map[string]any{
|
|
"success": true,
|
|
"message": "登录成功",
|
|
})
|
|
}
|