Skip to content

Example: sending an immediate delivery

Stefano Varesi edited this page Apr 9, 2015 · 1 revision
package com.contactlab.api.ws.examples;

import javax.xml.ws.BindingProvider;

import com.contactlab.api.ws.ClabService;
import com.contactlab.api.ws.ClabService_Service;
import com.contactlab.api.ws.domain.AuthToken;
import com.contactlab.api.ws.domain.Campaign;
import com.contactlab.api.ws.domain.Subscriber;
import com.contactlab.api.ws.domain.SubscriberAttribute;

public class SendImmediateMessage {

    private String recipient = "username@contactlabo.com";
    private int campaignId = 3;
    private int sourceIdentifier = 1;
    private int subscriberIdentifier = 2;
    private int sendImmediateMethod = 1;
    private String campaignAlias = "existingCampaign";

    private ClabService service;
    private Subscriber subscriber;
    private AuthToken token;
    private Campaign campaign;

    public static void main(String[] args) {
        new SendImmediateMessage();
    }

    public SendImmediateMessage() {
        init();
        sendImmediateMessage(sendImmediateMethod);
        shutdown();
    }

    private void init() {

        service = new ClabService_Service().getClabServicePort();

        BindingProvider provider = ((BindingProvider) service);
        provider.getRequestContext().put(BindingProvider.SESSION_MAINTAIN_PROPERTY, true);

        token = service.borrowToken(Parameters.apiKey, Parameters.userKey);
        campaign = service.getCampaign(token, campaignId);

        subscriber = new Subscriber();
        SubscriberAttribute subscriberAttribute = null;
        subscriberAttribute = new SubscriberAttribute();
        subscriberAttribute.setKey("RECIPIENT");
        subscriberAttribute.setValue(recipient);
        subscriber.getAttributes().add(subscriberAttribute);
        subscriberAttribute = new SubscriberAttribute();
        subscriberAttribute.setKey("FIRSTNAME");
        subscriberAttribute.setValue("fabio");
        subscriber.getAttributes().add(subscriberAttribute);
        subscriberAttribute = new SubscriberAttribute();
        subscriberAttribute.setKey("LASTNAME");
        subscriberAttribute.setValue("sangalli");
        subscriber.getAttributes().add(subscriberAttribute);
        subscriberAttribute = new SubscriberAttribute();
        subscriberAttribute.setKey("NOTE");
        subscriberAttribute.setValue("sendImmediateMessage");
        subscriber.getAttributes().add(subscriberAttribute);
    }

    public void shutdown() {
        subscriber = null;
        campaign = null;
        if (token != null) {
            service.invalidateToken(token);
        }
        service = null;
    }

    public void sendImmediateMessage(int number) {
        try {
            switch (number) {
            case 1:
                service.sendImmediateMessage(Parameters.apiKey, Parameters.userKey, campaignId, subscriber);
                break;
            case 2:
                service.sendImmediateMessageSidCid(Parameters.apiKey, Parameters.userKey, campaignId, sourceIdentifier, subscriberIdentifier);
                break;
            case 3:
                service.sendImmediateMessageSDataCData(Parameters.apiKey, Parameters.userKey, campaign, subscriber);
                break;
            case 4:
                service.sendImmediateMessageSIdCData(Parameters.apiKey, Parameters.userKey, campaign, sourceIdentifier, subscriberIdentifier);
                break;
            case 5:
                service.sendImmediateMessageSdataCAl(Parameters.apiKey, Parameters.userKey, campaignAlias, subscriber);
                break;
            case 6:
                service.sendImmediateMessageSidCAl(Parameters.apiKey, Parameters.userKey, campaignAlias, sourceIdentifier, subscriberIdentifier);
                break;
            default:
                break;
            }
        } catch (Exception e1) {
            e1.printStackTrace();
        }
    }
}