Edit/Rebook a Campaign (SOAP)
This use case describes the requirements for editing or rebooking a on your domain.
SOAP Method References
To edit or rebook a campaign, use the following methods:
PHP Code Sample
Note: The ID#s we use in these samples are for illustration purposes. They are invalid. Be sure to use your own ID#s for your integrations.
Copy
#!/usr/bin/php
<?php
## Edit and rebook a campaign
##
## Usage : php reservation_mgr_update_v19 --domain=domainId --id=reservationId
## Usage example : php reservation_mgr_update_v19 --domain=123456789 --id=987654321
include "soaplib.php";
include "cmdutil.php";
$options = get_arguments("domain!" , "id!");
$body = new stdClass();
$body -> domain_id = $options["domain"]; # ID of your domain
$body -> id = $options["id"] ; # ID of your campaign
$body -> name = "Test_Reservation_for_11_1_docs" ;
$body -> state = 1;
$body -> container_id = 123485962;
$response = performSimpleOperation("reservation", "update", 19, $body);
/* Enter an arbitrary value. */
$body = new stdClass();
$body -> domain_id = $options["domain"]; # ID of your domain
$body -> duration_msec = 45000;
$body -> end_date = "2016-12-01";
$body -> end_time = "22:00:59";
$body -> id = $options["id"];
$body -> start_date = "2016-07-01";
$body -> start_time = "00:00:00";
/* Rebook the reservation. */
$response = performSimpleOperation("reservation", "rebook", 19, $body);
if (!$response) {
print "Could not create reservation.\n";
return;
}
/* Reinitialize the variable body. */
$body = new stdClass();
$body -> domain_id = $options["domain"]; # ID of your domain
$body -> id = $options["id"];
$body -> slot_transaction_id = $response -> reservation[0] -> id ;
/* Rebook confirm operation. */
$response = performSimpleOperation("reservation", "rebook_confirm", 19, $body);
if (!$response)
{
print "Could not update reservation.\n";
return;
}
#echo json_encode($response);
?>
Java Code Samples
Note: The ID#s we use in these samples are for illustration purposes. They are invalid. Be sure to use your own ID#s for your integrations.
Main.java
Copy
/*
* (c) 2002 - 2015 BroadSign International, LLC
*/
import java.util.Calendar;
import org.apache.axis2.Constants.Configuration;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.context.ConfigurationContextFactory;
import org.apache.axis2.description.TransportOutDescription;
import org.apache.axis2.transport.http.CommonsHTTPTransportSender;
import org.apache.axis2.transport.http.HTTPConstants;
import com.broadsign.www.wsdl_ops.BsapiStub;
public class Main {
public static void main(String[] args) throws Exception {
/* Basic setup */
setupKeystore();
BsapiStub javaStub = createStub();
// Here are some pre-existing resources
// An ad copy to include in the campaign
String basicAdCopy = "80840165";
// The ID of the campaign to be rebooked
String basicCampaign = "125594013";
// Your domain's ID
String basicDomain = "68110168";
Boolean rebooked = false;
Calendar startDate = Calendar.getInstance();
Calendar endDate;
Calendar startTime = Calendar.getInstance();
Calendar endTime;
String contentIds[] = new String[1];
CampaignFactory campaignFactory = new CampaignFactory(javaStub);
contentIds[0] = basicAdCopy;
startDate.add(Calendar.MONTH, 1);
endDate = (Calendar)startDate.clone();
endDate.add(Calendar.MONTH, 3);
startTime.set(Calendar.HOUR_OF_DAY, 0);
endTime = (Calendar)startTime.clone();
endTime.add(Calendar.HOUR_OF_DAY, 23);
rebooked = campaignFactory.rebookCampaign(basicCampaign,
Util.calendarToDateString(startDate),
Util.calendarToDateString(endDate),
Util.calendarToTimeString(startTime),
Util.calendarToTimeString(endTime),
10000,
1,
127,
basicDomain);
if (rebooked)
System.out.println("Rebooked campaign " + basicCampaign);
}
private static BsapiStub createStub()
{
try {
ConfigurationContext config = ConfigurationContextFactory.createDefaultConfigurationContext();
TransportOutDescription transport = new TransportOutDescription("https_mutual_auth");
CommonsHTTPTransportSender sender = new CommonsHTTPTransportSender();
sender.init(config, transport);
BsapiStub javaStub = new BsapiStub();
transport.setSender(sender);
javaStub._getServiceClient().getOptions().setProperty(Configuration.CHARACTER_SET_ENCODING, "utf-16");
javaStub._getServiceClient().getOptions().setProperty(HTTPConstants.CHUNKED, "false");
javaStub._getServiceClient().getOptions().setTransportOut(transport);
return javaStub;
} catch (java.lang.Exception e) {
System.out.println("Error:" + e.toString());
}
return null;
}
private static void setupKeystore()
{
// NOTE: Make sure to update the folders where your keystore files are located
// as well as the actual passwords for your keystores
System.setProperty("javax.net.ssl.keyStoreType", "jks");
System.setProperty("javax.net.ssl.keyStore", "YOUR_SOAP_KEYSTORE_HERE.keystore");
System.setProperty("javax.net.ssl.keyStorePassword", "YOUR_SOAP_KEYSTORE_PASSWORD_HERE");
System.setProperty("javax.net.ssl.trustStoreType", "jks");
System.setProperty("javax.net.ssl.trustStore", "YOUR_TRUSTED_KEYSTORE_HERE.keystore");
System.setProperty("javax.net.ssl.trustStorePassword", "YOUR_TRUSTED_KEYSTORE_PASSWORD_HERE");
}
}
CampaignFactory.java
Copy
/*
/*
* (c) 2002 - 2015 BroadSign International, LLC
*/
/*
* CampaignFactory Class
*
* This class allows the creation of campaigns
*/
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.apache.xmlbeans.XmlObject;
import com.broadsign.www.wsdl_ops.BsapiStub;
import com.broadsign.www.wsdl_ops.BundleContentMgrAddRequestBody;
import com.broadsign.www.wsdl_ops.BundleMgrAddRequestBody;
import com.broadsign.www.wsdl_ops.BundleMgrAddResponseBody;
import com.broadsign.www.wsdl_ops.ContentMgrListManyResponseBody;
import com.broadsign.www.wsdl_ops.LoopSlotMgrListByReservationRequestBody;
import com.broadsign.www.wsdl_ops.LoopSlotMgrListByReservationResponseBody;
import com.broadsign.www.wsdl_ops.RequestDocument;
import com.broadsign.www.wsdl_ops.ReservationMgrAddRequestBody;
import com.broadsign.www.wsdl_ops.ReservationMgrAddResponseBody;
import com.broadsign.www.wsdl_ops.ReservationMgrAddSkinSlotsRequestBody;
import com.broadsign.www.wsdl_ops.ReservationMgrAddSkinSlotsResponseBody;
import com.broadsign.www.wsdl_ops.ReservationMgrBatchDropSkinSlotsRequestBody;
import com.broadsign.www.wsdl_ops.ReservationMgrBatchDropSkinSlotsResponseBody;
import com.broadsign.www.wsdl_ops.ReservationMgrListManyResponseBody;
import com.broadsign.www.wsdl_ops.ReservationMgrListRequestBody;
import com.broadsign.www.wsdl_ops.ReservationMgrListResponseBody;
import com.broadsign.www.wsdl_ops.ReservationMgrListScopedRequestBody;
import com.broadsign.www.wsdl_ops.ReservationMgrListScopedResponseBody;
import com.broadsign.www.wsdl_ops.ReservationMgrRebookConfirmRequestBody;
import com.broadsign.www.wsdl_ops.ReservationMgrRebookRequestBody;
import com.broadsign.www.wsdl_ops.ReservationMgrRebookResponseBody;
import com.broadsign.www.wsdl_ops.ReservationMgrUpdateRequestBody;
import com.broadsign.www.wsdl_ops.ResponseDocument;
import com.broadsign.www.wsdl_ops.ScheduleMgrAddRequestBody;
import com.broadsign.www.wsdl_ops.ScheduleMgrAddResponseBody;
import com.broadsign.www.wsdl_ops.WsdlRequest;
import com.broadsign.www.wsdl_ops.WsdlResponse;
import com.broadsign.www.wsdl_types.ReservationState;
import com.broadsign.www.wsdl_types.ScheduleGroup;
class CampaignDefaults {
public Boolean defaultFullscreen;
public String defaultCategoryId;
public String defaultSegmentCategoryId;
public int defaultBundleWeight;
public String defaultTriggerCategoryId;
}
class CampaignTargeting {
public List<String> duAndCriteria = new ArrayList<String>();
public List<String> duOrCriteria = new ArrayList<String>();
public List<String> duNotCriteria = new ArrayList<String>();
public List<String> frameAndCriteria = new ArrayList<String>();
public List<String> frameOrCriteria = new ArrayList<String>();
public List<String> frameNotCriteria = new ArrayList<String>();
}
class CampaignFactory {
public CampaignFactory(BsapiStub stub)
{
assert(stub != null);
m_stub = stub;
m_fetchFacade = new FetchFacade(m_stub);
}
public String createCampaign(String name,
String startDate,
String endDate,
String startTime,
String endTime,
int durationMSec,
int saturation,
CampaignDefaults defaults,
CampaignTargeting targeting,
String customerId,
String contentIds[],
String domainId,
Boolean promote)
{
return createCampaignInternal(name,
startDate,
endDate,
startTime,
endTime,
durationMSec,
saturation,
defaults,
targeting,
customerId,
contentIds,
domainId,
promote);
}
private String createCampaignInternal(String name,
String startDate,
String endDate,
String startTime,
String endTime,
int durationMSec,
int saturation,
CampaignDefaults defaults,
CampaignTargeting targeting,
String customerId,
String contentIds[],
String domainId,
Boolean promote)
{
String campaignId = "";
try {
ReservationMgrAddRequestBody reservationMgrAddRequestBody = ReservationMgrAddRequestBody.Factory.newInstance();
WsdlRequest wsdlRequest = WsdlRequest.Factory.newInstance();
RequestDocument requestDocument = RequestDocument.Factory.newInstance();
XmlObject bodies[];
ResponseDocument responseDocument;
reservationMgrAddRequestBody.setParentId(customerId);
reservationMgrAddRequestBody.setDefaultCategoryId(defaults.defaultCategoryId);
reservationMgrAddRequestBody.setDefaultFullscreen(defaults.defaultFullscreen);
reservationMgrAddRequestBody.setDefaultSegmentCategoryId(defaults.defaultSegmentCategoryId);
reservationMgrAddRequestBody.setDefaultBundleWeight(defaults.defaultBundleWeight);
reservationMgrAddRequestBody.setDefaultTriggerCategoryId(defaults.defaultTriggerCategoryId);
reservationMgrAddRequestBody.setDurationMsec(durationMSec);
reservationMgrAddRequestBody.setStartDate(startDate);
reservationMgrAddRequestBody.setEndDate(endDate);
reservationMgrAddRequestBody.setStartTime(startTime);
reservationMgrAddRequestBody.setEndTime(endTime);
reservationMgrAddRequestBody.setName(name);
reservationMgrAddRequestBody.setSaturation(saturation);
reservationMgrAddRequestBody.setDomainId(domainId);
wsdlRequest.setName("reservation_mgr_add");
wsdlRequest.setVersion(19);
wsdlRequest.setReservation(reservationMgrAddRequestBody);
requestDocument.setRequest(wsdlRequest);
requestDocument.documentProperties().setEncoding("utf-16");
System.out.println(requestDocument.xmlText());
responseDocument = m_stub.reservation_mgr_add_v19(requestDocument);
System.out.println(responseDocument.xmlText());
bodies = responseDocument.getResponse().getReservationArray();
if (bodies.length == 1) {
ReservationMgrAddResponseBody campaign = ReservationMgrAddResponseBody.Factory.parse(bodies[0].xmlText());
String reservedSkinSlotCampaignId = "";
campaignId = campaign.getId().toString();
reservedSkinSlotCampaignId = reserveCampaignSkinSlotsInternal(campaign.getId().toString(),
targeting.duAndCriteria,
targeting.duOrCriteria,
targeting.duNotCriteria,
targeting.frameAndCriteria,
targeting.frameOrCriteria,
targeting.frameNotCriteria,
domainId);
if (!reservedSkinSlotCampaignId.isEmpty()) {
ReservationMgrListManyResponseBody campaignHandle = m_fetchFacade.listCampaign(campaignId, domainId);
String createdScheduleId = "";
LoopSlotMgrListByReservationRequestBody loopSlotMgrListByReservationRequestBody = LoopSlotMgrListByReservationRequestBody.Factory.newInstance();
WsdlRequest wsdlLoopSlotRequest = WsdlRequest.Factory.newInstance();
RequestDocument loopSlotRequestDocument = RequestDocument.Factory.newInstance();
XmlObject loopSlotBodies[];
ResponseDocument loopSlotResponseDocument;
loopSlotMgrListByReservationRequestBody.setReservationId(campaignId);
loopSlotMgrListByReservationRequestBody.setDomainId(domainId);
wsdlLoopSlotRequest.setName("loop_slot_mgr_list_by_reservation");
wsdlLoopSlotRequest.setVersion(9);
wsdlLoopSlotRequest.setLoopSlot(loopSlotMgrListByReservationRequestBody);
loopSlotRequestDocument.setRequest(wsdlLoopSlotRequest);
loopSlotRequestDocument.documentProperties().setEncoding("utf-16");
System.out.println(loopSlotRequestDocument.xmlText());
loopSlotResponseDocument = m_stub.loop_slot_mgr_list_by_reservable_v9(loopSlotRequestDocument);
System.out.println(loopSlotResponseDocument.xmlText());
loopSlotBodies = loopSlotResponseDocument.getResponse().getLoopSlotArray();
if (loopSlotBodies.length == 1) {
LoopSlotMgrListByReservationResponseBody loopSlot = LoopSlotMgrListByReservationResponseBody.Factory.parse(loopSlotBodies[0].xmlText());
String loopSlotId = loopSlot.getId().toString();
createdScheduleId = addScheduleToCampaign(domainId, startDate, endDate, startTime, endTime, 127, campaignId, loopSlotId);
}
if (campaignHandle != null) {
for (int i = 0; i < contentIds.length; i++) {
if (!addContentToSchedule(campaignHandle.getDefaultScheduleId().toString(), contentIds[i], domainId))
System.out.println("Error: Failed to add content Id " + contentIds[i] + " to default schedule.");
if (!createdScheduleId.isEmpty()) {
if (!addContentToSchedule(createdScheduleId, contentIds[i], domainId))
System.out.println("Error: Failed to add content Id " + contentIds[i] + " to created schedule.");
}
}
if (!promoteReservation(campaignHandle))
System.out.println("Error: Failed to promote campaign.");
} else {
System.out.println("Error: Failed to list campaign.");
}
} else {
System.out.println("Error: Failed to reserve skin slots.");
}
} else {
System.out.println("Error: Failed to create campaign.");
}
} catch (java.lang.Exception e) {
System.out.println("Error:" + e.toString());
}
return campaignId;
}
public String reserveCampaignSkinSlots(String reservationId,
String domainId,
CampaignTargeting targeting)
{
return reserveCampaignSkinSlotsInternal(reservationId,
targeting.duAndCriteria,
targeting.duOrCriteria,
targeting.duNotCriteria,
targeting.frameAndCriteria,
targeting.frameOrCriteria,
targeting.frameNotCriteria,
domainId);
}
private String reserveCampaignSkinSlotsInternal(String reservationId,
List<String> duAndCriteria,
List<String> duOrCriteria,
List<String> duNotCriteria,
List<String> duAndFrame,
List<String> duOrFrame,
List<String> duNotFrame,
String domainId)
{
String campaignId = "";
try {
ReservationMgrAddSkinSlotsRequestBody requestBody = ReservationMgrAddSkinSlotsRequestBody.Factory.newInstance();
WsdlRequest wsdlRequest = WsdlRequest.Factory.newInstance();
RequestDocument requestDocument = RequestDocument.Factory.newInstance();
XmlObject bodies[];
ResponseDocument responseDocument;
for (Iterator<String> it = duAndCriteria.iterator(); it.hasNext();)
requestBody.addNewDuAndCriteria().setId(it.next());
for (Iterator<String> it = duOrCriteria.iterator(); it.hasNext();)
requestBody.addNewDuOrCriteria().setId(it.next());
for (Iterator<String> it = duNotCriteria.iterator(); it.hasNext();)
requestBody.addNewDuNotCriteria().setId(it.next());
for (Iterator<String> it = duAndFrame.iterator(); it.hasNext();)
requestBody.addNewFrameAndCriteria().setId(it.next());
for (Iterator<String> it = duOrFrame.iterator(); it.hasNext();)
requestBody.addNewFrameOrCriteria().setId(it.next());
for (Iterator<String> it = duNotFrame.iterator(); it.hasNext();)
requestBody.addNewFrameNotCriteria().setId(it.next());
requestBody.setId(reservationId);
requestBody.setDomainId(domainId);
wsdlRequest.setName("reservation_mgr_add_skin_slots");
wsdlRequest.setVersion(19);
wsdlRequest.setReservation(requestBody);
requestDocument.setRequest(wsdlRequest);
requestDocument.documentProperties().setEncoding("utf-16");
System.out.println(requestDocument.xmlText());
responseDocument = m_stub.reservation_mgr_add_skin_slots_v19(requestDocument);
System.out.println(responseDocument.xmlText());
bodies = responseDocument.getResponse().getReservationArray();
assert(bodies.length == 1);
if (bodies.length == 1) {
ReservationMgrAddSkinSlotsResponseBody campaign = ReservationMgrAddSkinSlotsResponseBody.Factory.parse(bodies[0].xmlText());
campaignId = campaign.getId().toString();
}
} catch (java.lang.Exception e) {
System.out.println("Error:" + e.toString());
}
return campaignId;
}
private Boolean addContentToSchedule(String scheduleId, String contentId, String domainId)
{
try {
BundleMgrAddRequestBody bundleRequestBody = BundleMgrAddRequestBody.Factory.newInstance();
WsdlRequest bundleWsdlRequest = WsdlRequest.Factory.newInstance();
RequestDocument bundleRequestDocument = RequestDocument.Factory.newInstance();
XmlObject bundleBodies[];
ResponseDocument bundleResponseDocument;
ContentMgrListManyResponseBody content = m_fetchFacade.listContent(contentId, domainId);
bundleRequestBody.setName(content == null ? "Ad Copy" : content.getName());
bundleRequestBody.setParentId(scheduleId);
bundleRequestBody.setDomainId(domainId);
bundleWsdlRequest.setName("bundle_mgr_add");
bundleWsdlRequest.setVersion(12);
bundleWsdlRequest.setBundle(bundleRequestBody);
bundleRequestDocument.setRequest(bundleWsdlRequest);
bundleRequestDocument.documentProperties().setEncoding("utf-16");
System.out.println(bundleRequestDocument.xmlText());
bundleResponseDocument = m_stub.bundle_mgr_add_v12(bundleRequestDocument);
System.out.println(bundleResponseDocument.xmlText());
bundleBodies = bundleResponseDocument.getResponse().getBundleArray();
assert(bundleBodies.length == 1);
if (bundleBodies.length == 1) {
BundleContentMgrAddRequestBody bundleContentRequestBody = BundleContentMgrAddRequestBody.Factory.newInstance();
WsdlRequest bundleContentWsdlRequest = WsdlRequest.Factory.newInstance();
RequestDocument bundleContentRequestDocument = RequestDocument.Factory.newInstance();
XmlObject bundleContentBodies[];
ResponseDocument bundleContentResponseDocument;
BundleMgrAddResponseBody bundle = BundleMgrAddResponseBody.Factory.parse(bundleBodies[0].xmlText());
bundleContentRequestBody.setParentId(bundle.getId().toString());
bundleContentRequestBody.setContentId(contentId);
bundleContentRequestBody.setDomainId(domainId);
bundleContentWsdlRequest.setName("bundle_content_mgr_add");
bundleContentWsdlRequest.setVersion(5);
bundleContentWsdlRequest.setBundleContent(bundleContentRequestBody);
bundleContentRequestDocument.setRequest(bundleContentWsdlRequest);
bundleContentRequestDocument.documentProperties().setEncoding("utf-16");
System.out.println(bundleContentRequestDocument.xmlText());
bundleContentResponseDocument = m_stub.bundle_content_mgr_add_v5(bundleContentRequestDocument);
System.out.println(bundleContentResponseDocument.xmlText());
bundleContentBodies = bundleContentResponseDocument.getResponse().getBundleContentArray();
assert(bundleContentBodies.length == 1);
if (bundleContentBodies.length == 1)
return true;
} else {
System.out.println("Error: Failed to create bundle content relationship");
}
} catch (java.lang.Exception e) {
System.out.println("Error:" + e.toString());
}
return false;
}
private Boolean promoteReservation(ReservationMgrListManyResponseBody campaign)
{
try {
ReservationMgrUpdateRequestBody reservationRequestBody = ReservationMgrUpdateRequestBody.Factory.newInstance();
WsdlRequest reservationWsdlRequest = WsdlRequest.Factory.newInstance();
RequestDocument reservationRequestDocument = RequestDocument.Factory.newInstance();
ResponseDocument reservationResponseDocument;
XmlObject reservationBodies[];
reservationRequestBody.setParentId(campaign.getParentId());
reservationRequestBody.setId(campaign.getId());
reservationRequestBody.setActive(campaign.getActive());
reservationRequestBody.setContainerId(campaign.getContainerId());
reservationRequestBody.setDefaultBundleWeight(campaign.getDefaultBundleWeight());
reservationRequestBody.setDefaultCategoryId(campaign.getDefaultCategoryId());
reservationRequestBody.setDefaultFullscreen(campaign.getDefaultFullscreen());
reservationRequestBody.setDefaultSegmentCategoryId(campaign.getDefaultSegmentCategoryId());
reservationRequestBody.setDefaultTriggerCategoryId(campaign.getDefaultTriggerCategoryId());
reservationRequestBody.setDomainId(campaign.getDomainId());
reservationRequestBody.setName(campaign.getName());
reservationRequestBody.setState(ReservationState.X_1); // Reservation_STATE_CONTRACTED == 1
reservationWsdlRequest.setName("reservation_mgr_update");
reservationWsdlRequest.setVersion(19);
reservationWsdlRequest.setReservation(reservationRequestBody);
reservationRequestDocument.setRequest(reservationWsdlRequest);
reservationRequestDocument.documentProperties().setEncoding("utf-16");
System.out.println(reservationRequestDocument.xmlText());
reservationResponseDocument = m_stub.reservation_mgr_update_v19(reservationRequestDocument);
System.out.println(reservationResponseDocument.xmlText());
reservationBodies = reservationResponseDocument.getResponse().getReservationArray();
assert(reservationBodies.length == 1);
if (reservationBodies.length == 1)
return true;
} catch (java.lang.Exception e) {
System.out.println("Error:" + e.toString());
}
return false;
}
public Boolean rebookCampaign(String id,
String startDate,
String endDate,
String startTime,
String endTime,
int durationMSec,
int saturation,
int dayOfWeekMask,
String domainId)
{
try {
ReservationMgrRebookRequestBody reservationMgrRebookRequestBody = ReservationMgrRebookRequestBody.Factory.newInstance();
WsdlRequest wsdlRequest = WsdlRequest.Factory.newInstance();
RequestDocument requestDocument = RequestDocument.Factory.newInstance();
XmlObject bodies[];
ResponseDocument responseDocument;
reservationMgrRebookRequestBody.setId(id);
reservationMgrRebookRequestBody.setStartDate(startDate);
reservationMgrRebookRequestBody.setEndDate(endDate);
reservationMgrRebookRequestBody.setStartTime(startTime);
reservationMgrRebookRequestBody.setEndTime(endTime);
reservationMgrRebookRequestBody.setDurationMsec(durationMSec);
reservationMgrRebookRequestBody.setSaturation(saturation);
reservationMgrRebookRequestBody.setDayOfWeekMask(dayOfWeekMask);
reservationMgrRebookRequestBody.setDomainId(domainId);
wsdlRequest.setName("reservation_mgr_rebook");
wsdlRequest.setVersion(19);
wsdlRequest.setReservation(reservationMgrRebookRequestBody);
requestDocument.setRequest(wsdlRequest);
requestDocument.documentProperties().setEncoding("utf-16");
System.out.println(requestDocument.xmlText());
responseDocument = m_stub.reservation_mgr_rebook_v19(requestDocument);
System.out.println(responseDocument.xmlText());
bodies = responseDocument.getResponse().getReservationArray();
if (bodies.length == 1) {
ReservationMgrRebookResponseBody reservation = ReservationMgrRebookResponseBody.Factory.parse(bodies[0].xmlText());
String slotTransactionId = reservation.getId().toString();
ReservationMgrRebookConfirmRequestBody reservationMgrRebookConfirmRequestBody = ReservationMgrRebookConfirmRequestBody.Factory.newInstance();
WsdlRequest wsdlRebookConfirmRequest = WsdlRequest.Factory.newInstance();
RequestDocument rebookConfirmRequestDocument = RequestDocument.Factory.newInstance();
XmlObject rebookConfirmBodies[];
ResponseDocument rebookConfirmResponseDocument;
reservationMgrRebookConfirmRequestBody.setId(id);
reservationMgrRebookConfirmRequestBody.setDomainId(domainId);
reservationMgrRebookConfirmRequestBody.setSlotTransactionId(slotTransactionId);
wsdlRebookConfirmRequest.setName("reservation_mgr_rebook_confirm");
wsdlRebookConfirmRequest.setVersion(19);
wsdlRebookConfirmRequest.setReservation(reservationMgrRebookConfirmRequestBody);
rebookConfirmRequestDocument.setRequest(wsdlRebookConfirmRequest);
rebookConfirmRequestDocument.documentProperties().setEncoding("utf-16");
System.out.println(rebookConfirmRequestDocument.xmlText());
rebookConfirmResponseDocument = m_stub.reservation_mgr_rebook_confirm_v19(rebookConfirmRequestDocument);
System.out.println(rebookConfirmResponseDocument.xmlText());
rebookConfirmBodies = rebookConfirmResponseDocument.getResponse().getReservationArray();
if (rebookConfirmBodies.length == 1) {
return true;
} else {
System.out.println("Error: Failed to confirm campaign rebooking.");
}
} else {
System.out.println("Error: Failed to rebook campaign.");
}
} catch (java.lang.Exception e) {
System.out.println("Error:" + e.toString());
}
return false;
}
public List<String> dropCampaignSkinSlots(String reservationId, String domainId)
{
List<String> campaignIdsOfDroppedSkinSlots = new ArrayList<String>();
try {
ReservationMgrBatchDropSkinSlotsRequestBody reservationMgrBatchDropSkinSlotsRequestBody = ReservationMgrBatchDropSkinSlotsRequestBody.Factory.newInstance();
WsdlRequest wsdlRequest = WsdlRequest.Factory.newInstance();
RequestDocument requestDocument = RequestDocument.Factory.newInstance();
XmlObject bodies[];
ResponseDocument responseDocument;
reservationMgrBatchDropSkinSlotsRequestBody.setId(reservationId);
reservationMgrBatchDropSkinSlotsRequestBody.setDomainId(domainId);
wsdlRequest.setName("reservation_mgr_batch_drop_skin_slots");
wsdlRequest.setVersion(19);
wsdlRequest.setReservation(reservationMgrBatchDropSkinSlotsRequestBody);
requestDocument.setRequest(wsdlRequest);
requestDocument.documentProperties().setEncoding("utf-16");
System.out.println(requestDocument.xmlText());
responseDocument = m_stub.reservation_mgr_batch_drop_skin_slots_v19(requestDocument);
System.out.println(responseDocument.xmlText());
bodies = responseDocument.getResponse().getReservationArray();
if (bodies.length > 0) {
for (XmlObject body : bodies) {
ReservationMgrBatchDropSkinSlotsResponseBody campaigns = ReservationMgrBatchDropSkinSlotsResponseBody.Factory.parse(body.xmlText());
campaignIdsOfDroppedSkinSlots.add(campaigns.getId().toString());
}
} else {
System.out.println("Error: Failed to drop skin_slots.");
}
} catch (java.lang.Exception e) {
System.out.println("Error:" + e.toString());
}
return campaignIdsOfDroppedSkinSlots;
}
private String addScheduleToCampaign(String domainId,
String startDate,
String endDate,
String startTime,
String endTime,
int dayOfWeekMask,
String reservableId,
String loopSlotId)
{
String scheduleId = "";
try {
ScheduleMgrAddRequestBody scheduleRequestBody = ScheduleMgrAddRequestBody.Factory.newInstance();
WsdlRequest scheduleWsdlRequest = WsdlRequest.Factory.newInstance();
RequestDocument scheduleRequestDocument = RequestDocument.Factory.newInstance();
XmlObject scheduleBodies[];
ResponseDocument scheduleResponseDocument;
scheduleRequestBody.setName("BroadSign SDK Schedule Test");
scheduleRequestBody.setDomainId(domainId);
scheduleRequestBody.setStartDate(startDate);
scheduleRequestBody.setEndDate(endDate);
scheduleRequestBody.setStartTime(startTime);
scheduleRequestBody.setEndTime(endTime);
scheduleRequestBody.setDayOfWeekMask(dayOfWeekMask);
scheduleRequestBody.setScheduleGroup(ScheduleGroup.X_2); // ScheduleGroup_LOOP_SLOT == 2
scheduleRequestBody.setReservableId(reservableId);
scheduleRequestBody.setParentId(loopSlotId);
scheduleWsdlRequest.setName("schedule_mgr_add");
scheduleWsdlRequest.setVersion(8);
scheduleWsdlRequest.setSchedule(scheduleRequestBody);
scheduleRequestDocument.setRequest(scheduleWsdlRequest);
scheduleRequestDocument.documentProperties().setEncoding("utf-16");
System.out.println(scheduleRequestDocument.xmlText());
scheduleResponseDocument = m_stub.schedule_mgr_add_v8(scheduleRequestDocument);
System.out.println(scheduleResponseDocument.xmlText());
scheduleBodies = scheduleResponseDocument.getResponse().getScheduleArray();
assert(scheduleBodies.length == 1);
if (scheduleBodies.length == 1) {
ScheduleMgrAddResponseBody schedule = ScheduleMgrAddResponseBody.Factory.parse(scheduleBodies[0].xmlText());
scheduleId = schedule.getId().toString();
} else {
System.out.println("Error: Failed to create schedule.");
}
} catch (java.lang.Exception e) {
System.out.println("Error:" + e.toString());
}
return scheduleId;
}
public List<String> listReservations(String domainId, String parentContainerIds, Boolean currentOnly) throws Exception
{
List<String> results = new ArrayList<String>();
WsdlRequest wsdlRequest = WsdlRequest.Factory.newInstance();
XmlObject xmlBodies[];
RequestDocument requestDocument = RequestDocument.Factory.newInstance();
ResponseDocument responseDocument;
WsdlResponse response;
if (!parentContainerIds.isEmpty()) {
ReservationMgrListScopedRequestBody requestBody = ReservationMgrListScopedRequestBody.Factory.newInstance();
requestBody.setDomainId(domainId);
requestBody.setParentContainerIds(parentContainerIds);
requestBody.setCurrentOnly(currentOnly);
wsdlRequest.setName("reservation_mgr_list_scoped");
wsdlRequest.setVersion(19);
wsdlRequest.setReservation(requestBody);
} else {
ReservationMgrListRequestBody requestBody = ReservationMgrListRequestBody.Factory.newInstance();
requestBody.setDomainId(domainId);
requestBody.setCurrentOnly(currentOnly);
wsdlRequest.setName("reservation_mgr_list");
wsdlRequest.setVersion(19);
wsdlRequest.setReservation(requestBody);
}
requestDocument.setRequest(wsdlRequest);
requestDocument.documentProperties().setEncoding("utf-16");
System.out.println(requestDocument.xmlText());
if (!parentContainerIds.isEmpty())
responseDocument = m_stub.reservation_mgr_list_scoped_v19(requestDocument);
else
responseDocument = m_stub.reservation_mgr_list_v19(requestDocument);
System.out.println(responseDocument.xmlText());
response = responseDocument.getResponse();
xmlBodies = response.getReservationArray();
if (xmlBodies.length > 0) {
for (XmlObject xmlBody : xmlBodies) {
if (!parentContainerIds.isEmpty()) {
ReservationMgrListScopedResponseBody reservation = ReservationMgrListScopedResponseBody.Factory.parse(xmlBody.xmlText());
results.add(reservation.getId().toString());
} else {
ReservationMgrListResponseBody reservation = ReservationMgrListResponseBody.Factory.parse(xmlBody.xmlText());
results.add(reservation.getId().toString());
}
}
}
return results;
}
private BsapiStub m_stub = null;
private FetchFacade m_fetchFacade = null;
}
Fetchfacade.java
Copy
/*
* (c) 2002 - 2015 BroadSign International, LLC
*/
/*
* FetchFacade Class
*
* This class contains basic listing operations
*/
import java.util.ArrayList;
import java.util.List;
import org.apache.xmlbeans.*;
import com.broadsign.www.wsdl_ops.*;
class FetchFacade {
public FetchFacade(BsapiStub stub)
{
assert(stub != null);
m_stub = stub;
}
public RelationshipMgrListResponseBody[] listRelationshipsByLeftResourceId(String leftResourceId, String domainId)
{
List<RelationshipMgrListResponseBody> relationships = new ArrayList<RelationshipMgrListResponseBody>();
try {
RelationshipMgrListRequestBody relationshipRequestBody = RelationshipMgrListRequestBody.Factory.newInstance();
WsdlRequest wsdlRequest = WsdlRequest.Factory.newInstance();
RequestDocument requestDocument = RequestDocument.Factory.newInstance();
XmlObject bodies[];
ResponseDocument responseDocument;
relationshipRequestBody.setDomainId(domainId);
wsdlRequest.setName("relationship_mgr_list");
wsdlRequest.setVersion(5);
wsdlRequest.setRelationship(relationshipRequestBody);
requestDocument.setRequest(wsdlRequest);
requestDocument.documentProperties().setEncoding("utf-16");
System.out.println(requestDocument.xmlText());
responseDocument = m_stub.relationship_mgr_list_v5(requestDocument);
System.out.println(responseDocument.xmlText());
bodies = responseDocument.getResponse().getRelationshipArray();
for (int i = 0; i < bodies.length; i++) {
RelationshipMgrListResponseBody relationship = RelationshipMgrListResponseBody.Factory.parse(bodies[i].xmlText());
assert(relationship != null);
if (relationship != null && Integer.parseInt(relationship.getParentId().toString()) == Integer.parseInt(leftResourceId))
relationships.add(relationship);
}
} catch (java.lang.Exception e) {
System.out.println("Error:" + e.toString());
}
return relationships.toArray(new RelationshipMgrListResponseBody[relationships.size()]);
}
public ContainerMgrListResponseBody[] listContainers(String ids[], String domainId)
{
List<ContainerMgrListResponseBody> containers = new ArrayList<ContainerMgrListResponseBody>();
try {
ContainerMgrListManyRequestBody containerRequestBody = ContainerMgrListManyRequestBody.Factory.newInstance();
WsdlRequest containerWsdlRequest = WsdlRequest.Factory.newInstance();
RequestDocument containerRequestDocument = RequestDocument.Factory.newInstance();
XmlObject containerBodies[];
ResponseDocument containerResponseDocument;
String stringIds = Util.arrayToString(ids);
containerRequestBody.setIds(stringIds);
containerRequestBody.setDomainId(domainId);
containerWsdlRequest.setName("container_mgr_list_many");
containerWsdlRequest.setVersion(8);
containerWsdlRequest.setContainer(containerRequestBody);
containerRequestDocument.setRequest(containerWsdlRequest);
containerRequestDocument.documentProperties().setEncoding("utf-16");
System.out.println(containerRequestDocument.xmlText());
containerResponseDocument = m_stub.container_mgr_list_many_v8(containerRequestDocument);
System.out.println(containerResponseDocument.xmlText());
containerBodies = containerResponseDocument.getResponse().getContainerArray();
assert(containerBodies.length > 0);
for (int i = 0; i < containerBodies.length; i++) {
ContainerMgrListResponseBody container = ContainerMgrListResponseBody.Factory.parse(containerBodies[i].xmlText());
assert(container != null);
if (container != null)
containers.add(container);
}
} catch (java.lang.Exception e) {
System.out.println("Error:" + e.toString());
}
return containers.toArray(new ContainerMgrListResponseBody[containers.size()]);
}
public CriteriaMgrListManyResponseBody[] listCriteria(String ids[], String domainId)
{
List<CriteriaMgrListManyResponseBody> criterias = new ArrayList<CriteriaMgrListManyResponseBody>();
try {
CriteriaMgrListManyRequestBody criteriaRequestBody = CriteriaMgrListManyRequestBody.Factory.newInstance();
WsdlRequest criteriaWsdlRequest = WsdlRequest.Factory.newInstance();
RequestDocument criteriaRequestDocument = RequestDocument.Factory.newInstance();
XmlObject criteriaBodies[];
ResponseDocument criteriaResponseDocument;
String stringIds = Util.arrayToString(ids);
criteriaRequestBody.setIds(stringIds);
criteriaRequestBody.setDomainId(domainId);
criteriaWsdlRequest.setName("criteria_mgr_list_many");
criteriaWsdlRequest.setVersion(7);
criteriaWsdlRequest.setCriteria(criteriaRequestBody);
criteriaRequestDocument.setRequest(criteriaWsdlRequest);
criteriaRequestDocument.documentProperties().setEncoding("utf-16");
System.out.println(criteriaRequestDocument.xmlText());
criteriaResponseDocument = m_stub.criteria_mgr_list_many_v7(criteriaRequestDocument);
System.out.println(criteriaResponseDocument.xmlText());
criteriaBodies = criteriaResponseDocument.getResponse().getCriteriaArray();
assert(criteriaBodies.length > 0);
for (int i = 0; i < criteriaBodies.length; i++) {
CriteriaMgrListManyResponseBody criteria = CriteriaMgrListManyResponseBody.Factory.parse(criteriaBodies[i].xmlText());
assert(criteria != null);
if (criteria != null)
criterias.add(criteria);
}
} catch (java.lang.Exception e) {
System.out.println("Error:" + e.toString());
}
return criterias.toArray(new CriteriaMgrListManyResponseBody[criterias.size()]);
}
public ResourceCriteriaMgrListResponseBody[] listResourceCriteriaByTargetResourceId(String targetResourceId, String domainId)
{
List<ResourceCriteriaMgrListResponseBody> rcs = new ArrayList<ResourceCriteriaMgrListResponseBody>();
try {
ResourceCriteriaMgrListRequestBody rcRequestBody = ResourceCriteriaMgrListRequestBody.Factory.newInstance();
WsdlRequest rcWsdlRequest = WsdlRequest.Factory.newInstance();
RequestDocument rcRequestDocument = RequestDocument.Factory.newInstance();
XmlObject rcBodies[];
ResponseDocument rcResponseDocument;
rcRequestBody.setParentId(targetResourceId);
rcRequestBody.setDomainId(domainId);
rcWsdlRequest.setName("resource_criteria_mgr_list");
rcWsdlRequest.setVersion(7);
rcWsdlRequest.setResourceCriteria(rcRequestBody);
rcRequestDocument.setRequest(rcWsdlRequest);
rcRequestDocument.documentProperties().setEncoding("utf-16");
System.out.println(rcRequestDocument.xmlText());
rcResponseDocument = m_stub.resource_criteria_mgr_list_v7(rcRequestDocument);
System.out.println(rcResponseDocument.xmlText());
rcBodies = rcResponseDocument.getResponse().getResourceCriteriaArray();
for (int i = 0; i < rcBodies.length; i++) {
ResourceCriteriaMgrListResponseBody rc = ResourceCriteriaMgrListResponseBody.Factory.parse(rcBodies[i].xmlText());
assert(rc != null);
if (rc != null)
rcs.add(rc);
}
} catch (java.lang.Exception e) {
System.out.println("Error:" + e.toString());
}
return rcs.toArray(new ResourceCriteriaMgrListResponseBody[rcs.size()]);
}
public MediaPackageMgrListManyResponseBody listMediaPackage(String id, String domainId)
{
String ids[] = new String[1];
MediaPackageMgrListManyResponseBody mediaPackages[];
ids[0] = id;
mediaPackages = listMediaPackages(ids, domainId);
if (mediaPackages.length == 1)
return mediaPackages[0];
return null;
}
public MediaPackageMgrListManyResponseBody[] listMediaPackages(String ids[], String domainId)
{
List<MediaPackageMgrListManyResponseBody> mediaPackages = new ArrayList<MediaPackageMgrListManyResponseBody>();
try {
MediaPackageMgrListManyRequestBody mediaPackageRequestBody = MediaPackageMgrListManyRequestBody.Factory.newInstance();
WsdlRequest wsdlRequest = WsdlRequest.Factory.newInstance();
RequestDocument requestDocument = RequestDocument.Factory.newInstance();
XmlObject bodies[];
ResponseDocument responseDocument;
String stringIds = Util.arrayToString(ids);
mediaPackageRequestBody.setIds(stringIds);
mediaPackageRequestBody.setDomainId(domainId);
wsdlRequest.setName("media_package_mgr_list_many");
wsdlRequest.setVersion(9);
wsdlRequest.setMediaPackage(mediaPackageRequestBody);
requestDocument.setRequest(wsdlRequest);
requestDocument.documentProperties().setEncoding("utf-16");
System.out.println(requestDocument.xmlText());
responseDocument = m_stub.media_package_mgr_list_many_v9(requestDocument);
System.out.println(responseDocument.xmlText());
bodies = responseDocument.getResponse().getMediaPackageArray();
for (int i = 0; i < bodies.length; i++) {
MediaPackageMgrListManyResponseBody mediaPackage = MediaPackageMgrListManyResponseBody.Factory.parse(bodies[i].xmlText());
assert(mediaPackage != null);
if (mediaPackage != null)
mediaPackages.add(mediaPackage);
}
} catch (java.lang.Exception e) {
System.out.println("Error:" + e.toString());
}
return mediaPackages.toArray(new MediaPackageMgrListManyResponseBody[mediaPackages.size()]);
}
public ReservationMgrListManyResponseBody listCampaign(String id, String domainId)
{
String ids[] = new String[1];
ReservationMgrListManyResponseBody bodies[];
ids[0] = id;
bodies = listCampaigns(ids, domainId);
if (bodies.length == 1)
return bodies[0];
return null;
}
public ReservationMgrListManyResponseBody[] listCampaigns(String ids[], String domainId)
{
List<ReservationMgrListManyResponseBody> campaigns = new ArrayList<ReservationMgrListManyResponseBody>();
try {
ReservationMgrListManyRequestBody requestBody = ReservationMgrListManyRequestBody.Factory.newInstance();
WsdlRequest wsdlRequest = WsdlRequest.Factory.newInstance();
RequestDocument requestDocument = RequestDocument.Factory.newInstance();
XmlObject bodies[];
ResponseDocument responseDocument;
String stringIds = Util.arrayToString(ids);
requestBody.setIds(stringIds);
requestBody.setDomainId(domainId);
wsdlRequest.setName("reservation_mgr_list_many");
wsdlRequest.setVersion(19);
wsdlRequest.setReservation(requestBody);
requestDocument.setRequest(wsdlRequest);
requestDocument.documentProperties().setEncoding("utf-16");
System.out.println(requestDocument.xmlText());
responseDocument = m_stub.reservation_mgr_list_many_v19(requestDocument);
System.out.println(responseDocument.xmlText());
bodies = responseDocument.getResponse().getReservationArray();
for (int i = 0; i < bodies.length; i++) {
ReservationMgrListManyResponseBody campaign = ReservationMgrListManyResponseBody.Factory.parse(bodies[i].xmlText());
assert(campaign != null);
if (campaign != null)
campaigns.add(campaign);
}
} catch (java.lang.Exception e) {
System.out.println("Error:" + e.toString());
}
return campaigns.toArray(new ReservationMgrListManyResponseBody[campaigns.size()]);
}
public ContentMgrListManyResponseBody listContent(String id, String domainId)
{
String ids[] = new String[1];
ContentMgrListManyResponseBody bodies[];
ids[0] = id;
bodies = listContents(ids, domainId);
if (bodies.length == 1)
return bodies[0];
return null;
}
public ContentMgrListManyResponseBody[] listContents(String ids[], String domainId)
{
List<ContentMgrListManyResponseBody> contents = new ArrayList<ContentMgrListManyResponseBody>();
assert(ids.length > 0);
if (ids.length > 0) {
try {
ContentMgrListManyRequestBody requestBody = ContentMgrListManyRequestBody.Factory.newInstance();
WsdlRequest wsdlRequest = WsdlRequest.Factory.newInstance();
RequestDocument requestDocument = RequestDocument.Factory.newInstance();
XmlObject bodies[];
ResponseDocument responseDocument;
String stringIds = Util.arrayToString(ids);
requestBody.setIds(stringIds);
requestBody.setDomainId(domainId);
wsdlRequest.setName("content_mgr_list_many");
wsdlRequest.setVersion(10);
wsdlRequest.setContent(requestBody);
requestDocument.setRequest(wsdlRequest);
requestDocument.documentProperties().setEncoding("utf-16");
System.out.println(requestDocument.xmlText());
responseDocument = m_stub.content_mgr_list_many_v10(requestDocument);
System.out.println(responseDocument.xmlText());
bodies = responseDocument.getResponse().getContentArray();
for (int i = 0; i < bodies.length; i++) {
ContentMgrListManyResponseBody content = ContentMgrListManyResponseBody.Factory.parse(bodies[i].xmlText());
assert(content != null);
if (content != null)
contents.add(content);
}
} catch (java.lang.Exception e) {
System.out.println("Error:" + e.toString());
}
}
return contents.toArray(new ContentMgrListManyResponseBody[contents.size()]);
}
private BsapiStub m_stub = null;
}
Util.java
Copy
/*
* (c) 2002 - 2015 BroadSign International, LLC
*/
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
class Util {
public static String arrayToString(String ids[])
{
String stringIds = "";
for (int i = 0; i < ids.length; i++) {
if (!stringIds.isEmpty())
stringIds += ",";
stringIds += ids[i];
}
return stringIds;
}
public static Calendar dateStringToCalendar(String date) throws ParseException
{
Calendar c = Calendar.getInstance();
if (date != null) {
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date d = formatter.parse(date);
c.setTime(d);
}
return c;
}
public static String calendarToDateString(Calendar date)
{
if (date != null) {
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
return formatter.format(date.getTime());
}
return "";
}
public static String calendarToTimeString(Calendar date)
{
if (date != null) {
DateFormat formatter = new SimpleDateFormat("HH:mm:ss");
return formatter.format(date.getTime());
}
return "";
}
}