/// <inheritdoc />
        /// <summary>
        /// Create a campaign &lt;b&gt;Permissions Needed:&lt;/b&gt; CAMPAIGNS_ADMIN
        /// </summary>
        /// <param name="campaignResource">The campaign resource object</param>
        public void CreateCampaign(CampaignResource campaignResource)
        {
            mWebCallEvent.WebPath = "/campaigns";
            if (!string.IsNullOrEmpty(mWebCallEvent.WebPath))
            {
                mWebCallEvent.WebPath = mWebCallEvent.WebPath.Replace("{format}", "json");
            }

            mWebCallEvent.HeaderParams.Clear();
            mWebCallEvent.QueryParams.Clear();
            mWebCallEvent.AuthSettings.Clear();
            mWebCallEvent.PostBody = null;

            mWebCallEvent.PostBody = KnetikClient.Serialize(campaignResource); // http body (model) parameter

            // authentication settings
            mWebCallEvent.AuthSettings.Add("oauth2_client_credentials_grant");

            // authentication settings
            mWebCallEvent.AuthSettings.Add("oauth2_password_grant");

            // make the HTTP request
            mCreateCampaignStartTime  = DateTime.Now;
            mWebCallEvent.Context     = mCreateCampaignResponseContext;
            mWebCallEvent.RequestType = KnetikRequestType.POST;

            KnetikLogger.LogRequest(mCreateCampaignStartTime, "CreateCampaign", "Sending server request...");
            KnetikGlobalEventSystem.Publish(mWebCallEvent);
        }
示例#2
0
        public void TestCreateRequest()
        {
            var twilioRestClient = Substitute.For <ITwilioRestClient>();
            var request          = new Request(
                HttpMethod.Post,
                Twilio.Rest.Domain.Messaging,
                "/v1/a2p/Campaigns",
                ""
                );

            request.AddPostParam("BrandRegistrationSid", Serialize("BNXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"));
            request.AddPostParam("UseCase", Serialize("use_case"));
            request.AddPostParam("Description", Serialize("description"));
            request.AddPostParam("MessageSamples", Serialize("message_samples"));
            request.AddPostParam("HasEmbeddedLinks", Serialize(true));
            request.AddPostParam("HasEmbeddedPhone", Serialize(true));
            request.AddPostParam("MessagingServiceSid", Serialize("MGXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"));
            twilioRestClient.Request(request).Throws(new ApiException("Server Error, no content"));

            try
            {
                CampaignResource.Create("BNXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "use_case", "description", Promoter.ListOfOne("message_samples"), true, true, "MGXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", client: twilioRestClient);
                Assert.Fail("Expected TwilioException to be thrown for 500");
            }
            catch (ApiException) {}
            twilioRestClient.Received().Request(request);
        }
    public void FillCampaignResources(GameObject[] GameResources)
    {
        List <CampaignResource> temporaryList = new List <CampaignResource>();

        foreach (GameObject resource in GameResources)
        {
            CampaignResource campaignResource = resource.GetComponent <CampaignResource>();

            temporaryList.Add(campaignResource);
        }

        resourceList.FillCampaignResources(temporaryList);
    }
        protected override void OnButtonClicked()
        {
            base.OnButtonClicked();

            CampaignResource resource = new ResourceBrowser(editor, type).ShowModal();

            if (resource is CampaignResource.Dummy)
            {
                Resource = null;
            }
            else if (resource != null)
            {
                Resource = resource;
            }
        }
示例#5
0
        public void TestReadFullResponse()
        {
            var twilioRestClient = Substitute.For <ITwilioRestClient>();

            twilioRestClient.AccountSid.Returns("ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
            twilioRestClient.Request(Arg.Any <Request>())
            .Returns(new Response(
                         System.Net.HttpStatusCode.OK,
                         "{\"meta\": {\"page\": 0,\"page_size\": 50,\"first_page_url\": \"https://messaging.twilio.com/v1/a2p/Campaigns?PageSize=50&Page=0\",\"previous_page_url\": null,\"next_page_url\": null,\"key\": \"data\",\"url\": \"https://messaging.twilio.com/v1/a2p/Campaigns?PageSize=50&Page=0\"},\"data\": [{\"sid\": \"CMdeadbeef66043a43b62be6d67c635c85\",\"account_sid\": \"ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"messaging_service_sid\": \"MGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"date_created\": \"2021-01-27T14:47:52Z\",\"date_updated\": \"2021-01-27T14:47:53Z\",\"description\": \"Test description for test campaing\",\"message_samples\": [\"Test_Sample_1\",\"Another_test_sample_2\"],\"status\": \"pending\",\"failure_reason\": null,\"use_case\": \"GAMBLING_SWEEPSTAKE\",\"has_embedded_links\": true,\"has_embedded_phone\": false,\"brand_registration_sid\": \"BN0044409f7e067e279523808d267e2d85\",\"url\": \"https://messaging.twilio.com/v1/a2p/Campaigns/CMdeadbeef66043a43b62be6d67c635c85\"}]}"
                         ));

            var response = CampaignResource.Read(client: twilioRestClient);

            Assert.NotNull(response);
        }
示例#6
0
        public void TestFetchResponse()
        {
            var twilioRestClient = Substitute.For <ITwilioRestClient>();

            twilioRestClient.AccountSid.Returns("ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
            twilioRestClient.Request(Arg.Any <Request>())
            .Returns(new Response(
                         System.Net.HttpStatusCode.OK,
                         "{\"sid\": \"CMdeadbeef66043a43b62be6d67c635c85\",\"account_sid\": \"ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"messaging_service_sid\": \"MGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"date_created\": \"2021-01-27T14:47:52Z\",\"date_updated\": \"2021-01-27T14:47:52Z\",\"description\": \"Test description for test campaing\",\"message_samples\": [\"Test_Sample_1\",\"Another_test_sample_2\"],\"status\": \"pending\",\"failure_reason\": null,\"use_case\": \"PUBLIC_SERVICE_ANNOUNCEMENT\",\"has_embedded_links\": true,\"has_embedded_phone\": false,\"brand_registration_sid\": \"BN0044409f7e067e279523808d267e2d85\",\"url\": \"https://messaging.twilio.com/v1/a2p/Campaigns/CMdeadbeef66043a43b62be6d67c635c85\"}"
                         ));

            var response = CampaignResource.Fetch("CMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", client: twilioRestClient);

            Assert.NotNull(response);
        }
示例#7
0
        public void TestDeleteResponse()
        {
            var twilioRestClient = Substitute.For <ITwilioRestClient>();

            twilioRestClient.AccountSid.Returns("ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
            twilioRestClient.Request(Arg.Any <Request>())
            .Returns(new Response(
                         System.Net.HttpStatusCode.NoContent,
                         "null"
                         ));

            var response = CampaignResource.Delete("CMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", client: twilioRestClient);

            Assert.NotNull(response);
        }
示例#8
0
        public void TestCreateResponse()
        {
            var twilioRestClient = Substitute.For <ITwilioRestClient>();

            twilioRestClient.AccountSid.Returns("ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
            twilioRestClient.Request(Arg.Any <Request>())
            .Returns(new Response(
                         System.Net.HttpStatusCode.Created,
                         "{\"sid\": \"CMdeadbeef66043a43b62be6d67c635c85\",\"account_sid\": \"ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"messaging_service_sid\": \"MG3u3kcgofdljponkatswl3ad3ev0c123u\",\"brand_registration_sid\": \"BN0044409f7e067e279523808d267e2d85\",\"date_created\": \"2021-01-27T14:47:52Z\",\"date_updated\": \"2021-01-27T14:47:52Z\",\"description\": \"Send marketing messages about sales and offers to opted in customers.\",\"message_samples\": [\"EXPRESS: Denim Days Event is ON\",\"LAST CHANCE: Book your next flight for just 1 (ONE) EUR\"],\"status\": \"pending\",\"failure_reason\": null,\"use_case\": \"2FA\",\"has_embedded_links\": true,\"has_embedded_phone\": false,\"url\": \"https://messaging.twilio.com/v1/a2p/Campaigns/CMdeadbeef66043a43b62be6d67c635c85\"}"
                         ));

            var response = CampaignResource.Create("BNXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "use_case", "description", Promoter.ListOfOne("message_samples"), true, true, "MGXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", client: twilioRestClient);

            Assert.NotNull(response);
        }
示例#9
0
        public void TestReadRequest()
        {
            var twilioRestClient = Substitute.For <ITwilioRestClient>();
            var request          = new Request(
                HttpMethod.Get,
                Twilio.Rest.Domain.Messaging,
                "/v1/a2p/Campaigns",
                ""
                );

            twilioRestClient.Request(request).Throws(new ApiException("Server Error, no content"));

            try
            {
                CampaignResource.Read(client: twilioRestClient);
                Assert.Fail("Expected TwilioException to be thrown for 500");
            }
            catch (ApiException) {}
            twilioRestClient.Received().Request(request);
        }
        /// <inheritdoc />
        /// <summary>
        /// Update a campaign &lt;b&gt;Permissions Needed:&lt;/b&gt; CAMPAIGNS_ADMIN
        /// </summary>
        /// <param name="id">The campaign id</param>
        /// <param name="campaignResource">The campaign resource object</param>
        public void UpdateCampaign(long?id, CampaignResource campaignResource)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new KnetikException(400, "Missing required parameter 'id' when calling UpdateCampaign");
            }

            mWebCallEvent.WebPath = "/campaigns/{id}";
            if (!string.IsNullOrEmpty(mWebCallEvent.WebPath))
            {
                mWebCallEvent.WebPath = mWebCallEvent.WebPath.Replace("{format}", "json");
            }
            mWebCallEvent.WebPath = mWebCallEvent.WebPath.Replace("{" + "id" + "}", KnetikClient.ParameterToString(id));

            mWebCallEvent.HeaderParams.Clear();
            mWebCallEvent.QueryParams.Clear();
            mWebCallEvent.AuthSettings.Clear();
            mWebCallEvent.PostBody = null;

            mWebCallEvent.PostBody = KnetikClient.Serialize(campaignResource); // http body (model) parameter

            // authentication settings
            mWebCallEvent.AuthSettings.Add("oauth2_client_credentials_grant");

            // authentication settings
            mWebCallEvent.AuthSettings.Add("oauth2_password_grant");

            // make the HTTP request
            mUpdateCampaignStartTime  = DateTime.Now;
            mWebCallEvent.Context     = mUpdateCampaignResponseContext;
            mWebCallEvent.RequestType = KnetikRequestType.PUT;

            KnetikLogger.LogRequest(mUpdateCampaignStartTime, "UpdateCampaign", "Sending server request...");
            KnetikGlobalEventSystem.Publish(mWebCallEvent);
        }