Дмитрий 3 years ago
parent
commit
fb38eabeec
  1. 17
      src/client_server/handlers.go
  2. 1
      src/requests_types/response_type.go

17
src/client_server/handlers.go

@ -41,8 +41,17 @@ func handleRequest(w http.ResponseWriter, r *http.Request) {
return
}
// TODO: fix url
// TODO: может что то получится сделать с p_body?
// TODO: fix url TODO: может что то получится сделать с p_body?
// Такие запросы надо разослать на список партнеров (-d). Из их
// ответов потом нужно выбрат
/*
Получив все ответы, ваш сервис должен для каждого элемента tiles из запроса
плейсмента выбрать среди imp с таким же id тот, у которого максимальная цена.
Одинаковых цен с одним id не будет
Если imp с каким-то id не получено, такого id не должно быть в ответе. Порядок imp в
ответе должен соответствовать порядку tiles в запросе плейсмента. Формат ответа:
*/
// Отпралять запросы как горутины!
p_body := constructPartnersRequestBody(&inpReqBody)
sendRequest("localhost:5059", &p_body)
@ -53,6 +62,7 @@ func constructPartnersRequestBody(ir *req_types.IncomingRequest) io.Reader {
var imps []req_types.Imp
// WARN: не знаю как правильно перемножать uint и float
for _, tile := range ir.Tiles {
imps = append(imps, req_types.Imp{
Id: tile.Id,
@ -63,7 +73,8 @@ func constructPartnersRequestBody(ir *req_types.IncomingRequest) io.Reader {
outReqBody.Id = *ir.Id
outReqBody.Imp = imps
outReqBody.Context = ir.Context
log.Println(*ir)
log.Println(outReqBody)
t, _ := json.Marshal(outReqBody)
return bytes.NewReader(t)
}

1
src/requests_types/response_type.go

@ -8,6 +8,7 @@ type RespImp struct {
Price float64
}
// Response from ad partners
type SuccesResponse struct {
Id string `json:"id"`
Imp []RespImp `json:"imp"`

Loading…
Cancel
Save