All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.taboola.backstage.services.CampaignAudienceTargetingServiceImpl Maven / Gradle / Ivy

package com.taboola.backstage.services;

import com.taboola.backstage.exceptions.BackstageAPIConnectivityException;
import com.taboola.backstage.exceptions.BackstageAPIRequestException;
import com.taboola.backstage.exceptions.BackstageAPIUnauthorizedException;
import com.taboola.backstage.internal.BackstageAudienceTargetingEndpoint;
import com.taboola.backstage.internal.FieldsValidator;
import com.taboola.backstage.model.auth.BackstageAuthentication;
import com.taboola.backstage.model.media.campaigns.CampaignLookalikeAudienceTargeting;
import com.taboola.backstage.model.media.campaigns.CampaignMultiTargetingCollection;

/**
 * Created by vladi.m
 * Date 29/04/2020
 * Time 11:01
 * Copyright Taboola
 */
public class CampaignAudienceTargetingServiceImpl implements CampaignAudienceTargetingService {

    private final Boolean performClientValidations;
    private final BackstageAudienceTargetingEndpoint endpoint;

    public CampaignAudienceTargetingServiceImpl(Boolean performClientValidations, BackstageAudienceTargetingEndpoint endpoint) {
        this.endpoint = endpoint;
        this.performClientValidations = performClientValidations;
    }

    @Override
    public CampaignMultiTargetingCollection readAudienceSegments(BackstageAuthentication auth, String accountId, String campaignId) throws BackstageAPIUnauthorizedException, BackstageAPIConnectivityException, BackstageAPIRequestException {
        return endpoint.readAudienceSegments(auth.getToken().getAccessTokenForHeader(), accountId, campaignId);
    }

    @Override
    public CampaignMultiTargetingCollection updateAudienceSegments(BackstageAuthentication auth, String accountId, String campaignId, CampaignMultiTargetingCollection targeting) throws BackstageAPIUnauthorizedException, BackstageAPIConnectivityException, BackstageAPIRequestException {
        if(performClientValidations) {
            FieldsValidator.validateCreateOperation(targeting);
        }

        return endpoint.updateAudienceSegments(auth.getToken().getAccessTokenForHeader(), accountId, campaignId, targeting);
    }

    @Override
    public CampaignMultiTargetingCollection readCustomAudience(BackstageAuthentication auth, String accountId, String campaignId) throws BackstageAPIUnauthorizedException, BackstageAPIConnectivityException, BackstageAPIRequestException {
        return endpoint.readCustomAudience(auth.getToken().getAccessTokenForHeader(), accountId, campaignId);
    }

    @Override
    public CampaignMultiTargetingCollection updateCustomAudience(BackstageAuthentication auth, String accountId, String campaignId, CampaignMultiTargetingCollection targeting) throws BackstageAPIUnauthorizedException, BackstageAPIConnectivityException, BackstageAPIRequestException {
        if(performClientValidations) {
            FieldsValidator.validateCreateOperation(targeting);
        }

        return endpoint.updateCustomAudience(auth.getToken().getAccessTokenForHeader(), accountId, campaignId, targeting);
    }

    @Override
    public CampaignMultiTargetingCollection readLookalikeAudience(BackstageAuthentication auth, String accountId, String campaignId) throws BackstageAPIUnauthorizedException, BackstageAPIConnectivityException, BackstageAPIRequestException {
        return endpoint.readLookalikeAudience(auth.getToken().getAccessTokenForHeader(), accountId, campaignId);
    }

    @Override
    public CampaignMultiTargetingCollection updateLookalikeAudience(BackstageAuthentication auth, String accountId, String campaignId, CampaignMultiTargetingCollection targeting) throws BackstageAPIUnauthorizedException, BackstageAPIConnectivityException, BackstageAPIRequestException {
        if(performClientValidations) {
            FieldsValidator.validateCreateOperation(targeting);
        }

        return endpoint.updateLookalikeAudience(auth.getToken().getAccessTokenForHeader(), accountId, campaignId, targeting);
    }

    @Override
    public CampaignMultiTargetingCollection readMarkingLabels(BackstageAuthentication auth, String accountId, String campaignId) throws BackstageAPIUnauthorizedException, BackstageAPIConnectivityException, BackstageAPIRequestException {
        return endpoint.readMarkingLabels(auth.getToken().getAccessTokenForHeader(), accountId, campaignId);
    }

    @Override
    public CampaignMultiTargetingCollection updateMarkingLabels(BackstageAuthentication auth, String accountId, String campaignId, CampaignMultiTargetingCollection targeting) throws BackstageAPIUnauthorizedException, BackstageAPIConnectivityException, BackstageAPIRequestException {
        if(performClientValidations) {
            FieldsValidator.validateCreateOperation(targeting);
        }

        return endpoint.updateMarkingLabels(auth.getToken().getAccessTokenForHeader(), accountId, campaignId, targeting);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy