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

com.taboola.backstage.services.CampaignPostalTargetingServiceImpl 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.BackstagePostalTargetingEndpoint;
import com.taboola.backstage.internal.FieldsValidator;
import com.taboola.backstage.model.auth.BackstageAuthentication;
import com.taboola.backstage.model.media.campaigns.targeting.PostalTargeting;

/**
 * Created by vladi
 * Date: 1/15/2018
 * Time: 11:27 PM
 * By Taboola
 */
public class CampaignPostalTargetingServiceImpl implements CampaignPostalTargetingService {

    private final BackstagePostalTargetingEndpoint endpoint;
    private final Boolean performClientValidations;

    public CampaignPostalTargetingServiceImpl(Boolean performClientValidations, BackstagePostalTargetingEndpoint endpoint) {
        this.endpoint = endpoint;
        this.performClientValidations = performClientValidations;
    }

    @Override
    public PostalTargeting read(BackstageAuthentication auth, String accountId, String campaignId) throws BackstageAPIUnauthorizedException, BackstageAPIConnectivityException, BackstageAPIRequestException {
        String accessTokenForHeader = auth.getToken().getAccessTokenForHeader();
        return endpoint.read(accessTokenForHeader, accountId, campaignId);
    }

    @Override
    public PostalTargeting update(BackstageAuthentication auth, String accountId, String campaignId, PostalTargeting targeting) throws BackstageAPIUnauthorizedException, BackstageAPIConnectivityException, BackstageAPIRequestException {
        if(performClientValidations) {
            FieldsValidator.validateCreateOperation(targeting);
        }
        String accessTokenForHeader = auth.getToken().getAccessTokenForHeader();
        return endpoint.update(accessTokenForHeader, accountId, campaignId, targeting);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy