logos-sdk 0.0.25.dev21__tar.gz → 0.0.25.dev23__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/PKG-INFO +1 -1
  2. {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk/services/DV360.py +23 -0
  3. {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk/services/MerchantCenter.py +65 -0
  4. {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk.egg-info/PKG-INFO +1 -1
  5. {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/LICENSE +0 -0
  6. {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/README.md +0 -0
  7. {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk/__init__.py +0 -0
  8. {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk/big_query/BigQuery.py +0 -0
  9. {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk/big_query/__init__.py +0 -0
  10. {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk/logging/LogosLogger.py +0 -0
  11. {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk/logging/__init__.py +0 -0
  12. {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk/services/CampaignManager.py +0 -0
  13. {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk/services/Collabim.py +0 -0
  14. {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk/services/Facebook.py +0 -0
  15. {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk/services/GoogleAds.py +0 -0
  16. {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk/services/GoogleSheets.py +0 -0
  17. {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk/services/MarketMiner.py +0 -0
  18. {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk/services/MicrosoftAdvertising.py +0 -0
  19. {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk/services/Sklik.py +0 -0
  20. {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk/services/__init__.py +0 -0
  21. {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk.egg-info/SOURCES.txt +0 -0
  22. {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk.egg-info/dependency_links.txt +0 -0
  23. {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk.egg-info/requires.txt +0 -0
  24. {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk.egg-info/top_level.txt +0 -0
  25. {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/setup.cfg +0 -0
  26. {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: logos-sdk
3
- Version: 0.0.25.dev21
3
+ Version: 0.0.25.dev23
4
4
  Summary: SDK for Logos platform
5
5
  Home-page: https://bitbucket.org/databy/logos-sdk-pip/src/master/
6
6
  Author: Databy.io
@@ -27,6 +27,7 @@ class DV360Service:
27
27
  )
28
28
  self._CREATE_CHANNEL = self._URL + "/create-channel"
29
29
  self._LIST_CHANNELS = self._URL + "/list-channels"
30
+ self._LIST_INSERTION_ORDERS = self._URL + "/list-insertion-orders"
30
31
  self._LIST_CHANNEL_SITES = self._URL + "/list-channel-sites"
31
32
  self._BULK_EDIT_CHANNEL_SITES = self._URL + "/bulk-edit-channel-sites"
32
33
 
@@ -182,6 +183,28 @@ class DV360Service:
182
183
  else:
183
184
  raise DV360ServiceException(response.content)
184
185
 
186
+ def list_insertion_orders(self, advertiser_id, secret_id, filter_string=None):
187
+ """
188
+ Lists insertion orders for advertiser
189
+ :param advertiser_id: The ID of the advertiser that owns the insertion orders
190
+ :param secret_id: The ID (name) of the Logos Secret in Secret Manager to be used to access the account specified by account email
191
+ :param filter_string: Allows filtering by insertion order fields
192
+ :return List[InsertionOrders]
193
+ """
194
+ header = get_headers(self._LIST_INSERTION_ORDERS)
195
+ body = {"advertiser_id": advertiser_id, "secret_id": secret_id}
196
+
197
+ if filter_string is not None:
198
+ body["filter"] = filter_string
199
+
200
+ response = self.session.request("post", url=self._LIST_INSERTION_ORDERS, json=body, headers=header)
201
+
202
+ if response.status_code == HTTPStatus.OK:
203
+ service_response = response.json()
204
+ return service_response["data"]
205
+ else:
206
+ raise DV360ServiceException(response.content)
207
+
185
208
  def list_channel_sites(
186
209
  self, advertiser_id, secret_id, channel_id, filter_string=None
187
210
  ):
@@ -21,6 +21,8 @@ class MerchantCenterService:
21
21
  self._LIST_PRODUCT_STATUSES = self._URL + "/product-service/product-statuses"
22
22
  self._REPORTS_SEARCH = self._URL + "/reports-search"
23
23
  self._GET_SUPPLEMENTAL_FEEDS = self._URL + "/feed-service/supplemental-feeds"
24
+ self._PRIMARY_FEED = self._URL + "/feed-service/feeds"
25
+
24
26
 
25
27
  def list_accounts(self, merchant_account_id: str, secret_id: str):
26
28
  """
@@ -226,6 +228,69 @@ class MerchantCenterService:
226
228
  else:
227
229
  raise MerchantServiceException(response.content)
228
230
 
231
+ def get_primary_feed(self, secret_id: str, merchant_account_id: str):
232
+ body = {"secret_id": secret_id, "merchant_account_id": merchant_account_id}
233
+ header = get_headers(self._PRIMARY_FEED)
234
+ response = self.session.request(
235
+ "post", url=self._PRIMARY_FEED, json=body, headers=header
236
+ )
237
+
238
+ if response.status_code == HTTPStatus.OK:
239
+ service_response = response.json()
240
+ return service_response["data"]
241
+ else:
242
+ raise MerchantServiceException(response.content)
243
+
244
+ def attach_supplemental_feed_to_primary_feed(
245
+ self,
246
+ secret_id: str,
247
+ merchant_account_id: str,
248
+ primary_feed_id: str,
249
+ supplemental_feed_id: str
250
+ ):
251
+ body = {
252
+ "secret_id": secret_id,
253
+ "merchant_account_id": merchant_account_id,
254
+ "primary_feed_id": primary_feed_id,
255
+ "supplemental_feed_id": supplemental_feed_id,
256
+ "action": "attach"
257
+ }
258
+ header = get_headers(self._PRIMARY_FEED)
259
+ response = self.session.request(
260
+ "patch", url=self._PRIMARY_FEED, json=body, headers=header
261
+ )
262
+
263
+ if response.status_code == HTTPStatus.OK:
264
+ service_response = response.json()
265
+ return service_response["data"]
266
+ else:
267
+ raise MerchantServiceException(response.content)
268
+
269
+ def detach_supplemental_feed_from_primary_feed(
270
+ self,
271
+ secret_id: str,
272
+ merchant_account_id: str,
273
+ primary_feed_id: str,
274
+ supplemental_feed_id: str
275
+ ):
276
+ body = {
277
+ "secret_id": secret_id,
278
+ "merchant_account_id": merchant_account_id,
279
+ "primary_feed_id": primary_feed_id,
280
+ "supplemental_feed_id": supplemental_feed_id,
281
+ "action": "detach"
282
+ }
283
+ header = get_headers(self._PRIMARY_FEED)
284
+ response = self.session.request(
285
+ "patch", url=self._PRIMARY_FEED, json=body, headers=header
286
+ )
287
+
288
+ if response.status_code == HTTPStatus.OK:
289
+ service_response = response.json()
290
+ return service_response["data"]
291
+ else:
292
+ raise MerchantServiceException(response.content)
293
+
229
294
  def get_supplemental_feeds(self, secret_id: str, merchant_account_id: str) -> bool:
230
295
  """
231
296
  Gets list of supplemental feeds
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: logos-sdk
3
- Version: 0.0.25.dev21
3
+ Version: 0.0.25.dev23
4
4
  Summary: SDK for Logos platform
5
5
  Home-page: https://bitbucket.org/databy/logos-sdk-pip/src/master/
6
6
  Author: Databy.io