Example #1
0
    def create_campaign(self, campaign_json):
        """
        Create a new campaign
        """
        campaign = Campaign(json_input=campaign_json)
        prepid = campaign.get_prepid()

        campaigns_db = Database('campaigns')
        if campaigns_db.get(prepid):
            raise Exception('Campaign with prepid "%s" already exists' %
                            (prepid))

        if self.__check_campaign(campaign):
            campaigns_db.save(campaign)
            return campaign
        else:
            self.logger.error('Error while checking campaign %s', prepid)
            return None
Example #2
0
    def update_campaign(self, campaign_json):
        """
        Update a campaign with given json
        """
        new_campaign = Campaign(json_input=campaign_json)
        prepid = new_campaign.get_prepid()

        campaigns_db = Database('campaigns')
        old_campaign = campaigns_db.get(prepid)
        if not old_campaign:
            raise Exception('Campaign with prepid does not "%s" exist' %
                            (prepid))

        old_campaign = Campaign(json_input=old_campaign)
        # Move over history, so it could not be overwritten
        new_campaign.set('history', old_campaign.get('history'))
        changed_values = self.get_changed_values(old_campaign, new_campaign)
        new_campaign.add_history('update', changed_values, None)
        if self.__check_campaign(new_campaign):
            campaigns_db.save(new_campaign)
            return new_campaign
        else:
            self.logger.error('Error while checking campaign %s', prepid)
            return None