diff --git a/line_item_manager/__init__.py b/line_item_manager/__init__.py index efad888..5a116c5 100644 --- a/line_item_manager/__init__.py +++ b/line_item_manager/__init__.py @@ -5,7 +5,7 @@ __version__ = '0.2.3' # For an official release, use dev_version = '' -dev_version = '' +dev_version = '1' version = __version__ if dev_version: diff --git a/line_item_manager/conf.d/line_item_manager.yml b/line_item_manager/conf.d/line_item_manager.yml index 91ff2c4..14d3828 100644 --- a/line_item_manager/conf.d/line_item_manager.yml +++ b/line_item_manager/conf.d/line_item_manager.yml @@ -82,6 +82,9 @@ creative: # at least one of the following types is required {video, banner} ############################################################################### order: name: "Prebid-{{ bidder_name }}-{{ media_type }}-{{ time }} {{ cpm_min }}-{{ cpm_max }}" + # appliedTeamIds: # list (optional) + # - 12345678 + # - 23456789 ############################################################################### # Line Items (required) # Allowed Templating Key Words: Bidder, Media, CPM, Misc diff --git a/line_item_manager/conf.d/schema.yml b/line_item_manager/conf.d/schema.yml index 793a99c..838835d 100644 --- a/line_item_manager/conf.d/schema.yml +++ b/line_item_manager/conf.d/schema.yml @@ -74,6 +74,11 @@ properties: properties: name: type: "string" + appliedTeamIds: + type: "array" + minItems: 1 + items: + type: "number" required: - "name" line_item: diff --git a/line_item_manager/gam_config.py b/line_item_manager/gam_config.py index 1c3140b..f04310f 100644 --- a/line_item_manager/gam_config.py +++ b/line_item_manager/gam_config.py @@ -173,8 +173,12 @@ def order(self) -> dict: cfg = render_cfg('order', self.bidder, media_type=self.media_type, cpm_min=self.cpms[0], cpm_max=self.cpms[-1]) log('order', obj=cfg) - self._order = Order(name=cfg['name'], advertiserId=self.advertiser['id'], - traffickerId=self.gam.user['id']).fetchone(create=True) + self._order = Order( + name=cfg['name'], + advertiserId=self.advertiser['id'], + traffickerId=self.gam.user['id'], + appliedTeamIds=config.user['order'].get('appliedTeamIds'), + ).fetchone(create=True) return self._order @property diff --git a/line_item_manager/operations.py b/line_item_manager/operations.py index 98ea089..b0b1b9c 100644 --- a/line_item_manager/operations.py +++ b/line_item_manager/operations.py @@ -157,6 +157,12 @@ class Order(AppOperations): service = "OrderService" method = 'getOrdersByStatement' create_method = 'createOrders' + query_fields = ('id', 'name', 'advertiserId', 'traffickerId') + + def __init__(self, *args, **kwargs): + if 'appliedTeamIds' in kwargs and kwargs['appliedTeamIds'] is None: + del kwargs['appliedTeamIds'] + super().__init__(*args, **kwargs) def archive(self) -> dict: if self.dry_run: diff --git a/tests/resources/cfg.yml b/tests/resources/cfg.yml index ac6a9b5..28a374d 100644 --- a/tests/resources/cfg.yml +++ b/tests/resources/cfg.yml @@ -62,6 +62,9 @@ creative: # at least one of the following types is required {video, banner} ############################################################################### order: name: "Prebid-{{ bidder_name }}-{{ media_type }}-{{ time }} {{ cpm_min }}-{{ cpm_max }}" + appliedTeamIds: # list (optional) + - 12345678 + - 23456789 ############################################################################### # Line Items (required) # Allowed Templating Key Words: Bidder, Media, CPM, Misc diff --git a/tests/resources/cfg_video.yml b/tests/resources/cfg_video.yml index db53548..b3f0502 100644 --- a/tests/resources/cfg_video.yml +++ b/tests/resources/cfg_video.yml @@ -62,6 +62,9 @@ creative: # at least one of the following types is required {video, banner} ############################################################################### order: name: "Prebid-{{ bidder_name }}-{{ media_type }}-{{ time }} {{ cpm_min }}-{{ cpm_max }}" + appliedTeamIds: # list (optional) + - 12345678 + - 23456789 ############################################################################### # Line Items (required) # Allowed Templating Key Words: Bidder, Media, CPM, Misc diff --git a/tests/test_config.py b/tests/test_config.py index 2e54409..895a9dd 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -36,6 +36,7 @@ def test_bidders(cli_config): def test_single_order(cli_config): assert [PrebidBidder(c_, single_order=config.cli['single_order']).targeting_key \ for c_ in config.bidder_codes()] == ['hb_pb'] + assert config.user['order']['appliedTeamIds'] == [12345678, 23456789] def test_fmt_bidder_key(): assert PrebidBidder('oneVideo').fmt_bidder_key('prefix') == "prefix_oneVideo"