feat: now back wait for RMQ answer
This commit is contained in:
parent
a29aefbe97
commit
ab29c33f5b
4 changed files with 143 additions and 30 deletions
|
|
@ -157,43 +157,61 @@ func (s Server) GetTitle(ctx context.Context, request oapi.GetTitleRequestObject
|
|||
|
||||
func (s Server) GetTitles(ctx context.Context, request oapi.GetTitlesRequestObject) (oapi.GetTitlesResponseObject, error) {
|
||||
|
||||
if request.Params.ExtSearch != nil && *request.Params.ExtSearch {
|
||||
// Публикуем событие — как и просили
|
||||
event := rmq.RabbitRequest{
|
||||
Name: "Attack on titans",
|
||||
// Status oapi.TitleStatus `json:"titlestatus,omitempty"`
|
||||
// Rating float64 `json:"titleraring,omitempty"`
|
||||
// Year int32 `json:"year,omitempty"`
|
||||
// Season oapi.ReleaseSeason `json:"season,omitempty"`
|
||||
Timestamp: time.Now(),
|
||||
}
|
||||
|
||||
// Контекст с таймаутом (не блокируем ответ)
|
||||
publishCtx, cancel := context.WithTimeout(ctx, 30*time.Second)
|
||||
defer cancel()
|
||||
|
||||
if err := s.publisher.Publish(publishCtx, "events.user", event); err != nil {
|
||||
log.Errorf("RMQ publish failed (non-critical): %v", err)
|
||||
} else {
|
||||
log.Infof("RMQ publish succeed %v", err)
|
||||
}
|
||||
opai_titles := make([]oapi.Title, 0)
|
||||
mqreq := rmq.RabbitRequest{
|
||||
Timestamp: time.Now(),
|
||||
}
|
||||
|
||||
opai_titles := make([]oapi.Title, 0)
|
||||
|
||||
word := Word2Sqlc(request.Params.Word)
|
||||
if word != nil {
|
||||
mqreq.Name = *word
|
||||
}
|
||||
|
||||
season, err := ReleaseSeason2sqlc(request.Params.ReleaseSeason)
|
||||
if err != nil {
|
||||
log.Errorf("%v", err)
|
||||
return oapi.GetTitles400Response{}, err
|
||||
}
|
||||
if season != nil {
|
||||
mqreq.Season = *request.Params.ReleaseSeason
|
||||
}
|
||||
|
||||
title_statuses, err := TitleStatus2Sqlc(request.Params.Status)
|
||||
if err != nil {
|
||||
log.Errorf("%v", err)
|
||||
return oapi.GetTitles400Response{}, err
|
||||
}
|
||||
if title_statuses != nil {
|
||||
mqreq.Statuses = *request.Params.Status
|
||||
}
|
||||
|
||||
if request.Params.ExtSearch != nil && *request.Params.ExtSearch {
|
||||
|
||||
// Структура для ответа (должна совпадать с тем, что шлёт микросервис)
|
||||
var reply struct {
|
||||
Status string `json:"status"`
|
||||
Result string `json:"result"`
|
||||
Preview string `json:"preview_url"`
|
||||
}
|
||||
|
||||
// Делаем RPC-вызов — и ЖДЁМ ответа
|
||||
err := s.RPCclient.Call(
|
||||
ctx,
|
||||
"svc.media.process.requests", // ← очередь микросервиса
|
||||
mqreq,
|
||||
&reply,
|
||||
)
|
||||
if err != nil {
|
||||
log.Errorf("RabitMQ: %v", err)
|
||||
// return oapi.GetTitles500Response{}, err
|
||||
}
|
||||
// // Возвращаем результат
|
||||
// return oapi.ProcessMedia200JSONResponse{
|
||||
// Status: reply.Status,
|
||||
// Result: reply.Result,
|
||||
// Preview: reply.Preview,
|
||||
// }, nil
|
||||
}
|
||||
|
||||
params := sqlc.SearchTitlesParams{
|
||||
Word: word,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue