-
Notifications
You must be signed in to change notification settings - Fork 0
/
campaign.clj
29 lines (24 loc) · 983 Bytes
/
campaign.clj
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
(ns ttd-api.api.campaign
(:require [clj-http.client :as client]
[ttd-api.api.api :as api]
[ttd-api.api.advertiser :as advertiser]
[cheshire.core :as c]))
(defn build-campaign-body [advertiser-id]
(let [token (api/token)
m {:headers {"TTD-AUTH" token}
:body (str "{\"AdvertiserId\": \"" advertiser-id "\"," "\"PageStartIndex\": \"0\", \"PageSize\": null}")
:content-type :json
:accept :json}]
m))
(defn get-campaigns [advertiser-id]
(-> (api/build-url "campaign/query/advertiser")
(client/post (build-campaign-body advertiser-id))
:body))
(defn get-campaign [campaign-id]
(-> (str (api/build-url "campaign/") campaign-id)
(client/get (api/headers))
:body))
(defn get-advertiser-from-campaign [campaign-json]
;; pull out advertiser-id
(let [advertiser-id (get-in (c/decode campaign-json) ["AdvertiserId"])]
(advertiser/get-advertiser advertiser-id)))