|
|
|
@ -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) |
|
|
|
|
} |
|
|
|
|