From 21490ba03fe761d9fb6262ed57ea4bdcb3472348 Mon Sep 17 00:00:00 2001 From: Tyrel Souza Date: Tue, 29 Apr 2014 17:05:21 -0400 Subject: [PATCH] BetterVideo API --- app/controllers/campaigns_controller.rb | 17 ++++++++++++++--- app/models/better_video.rb | 12 ++++++++++++ app/models/campaign.rb | 12 ++++++------ config/application.rb | 1 + config/environments/development.rb | 2 ++ 5 files changed, 35 insertions(+), 9 deletions(-) create mode 100644 app/models/better_video.rb diff --git a/app/controllers/campaigns_controller.rb b/app/controllers/campaigns_controller.rb index e59bfec..c0e03fb 100644 --- a/app/controllers/campaigns_controller.rb +++ b/app/controllers/campaigns_controller.rb @@ -38,14 +38,25 @@ class CampaignsController < ApplicationController end def update + notice = 'Campaign was saved for later use. It is not published yet.' + if @campaign.update(campaign_params) if params[:send] - @campaign.update({sent: true}) + client = BetterVideo.new(:url => "xxx") + bv_response = client.addVideo(campaign: @campaign) + if bv_response[:success] + notice = bv_response[:message] + @campaign.update({sent: true}) + return redirect_to campaign_path(@campaign.listingcode), notice: notice + else + flash.now[:alert] = bv_response[:message] + return show_errors('edit') + end end - redirect_to campaign_path(@campaign.listingcode), notice: 'Campaign was successfully updated.' else - show_errors('edit') + return show_errors('edit') end + redirect_to campaign_path(@campaign.listingcode), notice: notice end def destroy diff --git a/app/models/better_video.rb b/app/models/better_video.rb new file mode 100644 index 0000000..671969e --- /dev/null +++ b/app/models/better_video.rb @@ -0,0 +1,12 @@ +class BetterVideo + def initialize(options={}) + @addvideo_url = options.fetch(:url, "http://servicestest.bettervideo.com/orders/MDS.OrdersWS.svc/addVideo") + end + + def addVideo(campaign) + response = Hash.new + response[:success] = true + response[:message] = "Submitted to better video." + response + end +end \ No newline at end of file diff --git a/app/models/campaign.rb b/app/models/campaign.rb index 0d4299b..c3289e6 100644 --- a/app/models/campaign.rb +++ b/app/models/campaign.rb @@ -6,7 +6,7 @@ class Campaign < ActiveRecord::Base validates :websiteurl, presence: true validates :description, presence: true validates :productsandservices, presence: true - after_save :send_to_better_video + # after_save :send_to_better_video validate :has_at_least_one_videolisting after_initialize :set_defaults def set_defaults @@ -23,10 +23,10 @@ class Campaign < ActiveRecord::Base 0 end - def send_to_better_video - if self.sent_changed? && self.sent? == true - #TODO Make API Calls - end - end + # def send_to_better_video + # if self.sent_changed? && self.sent? == true + # + # end + # end end diff --git a/config/application.rb b/config/application.rb index af1c0c2..820633e 100644 --- a/config/application.rb +++ b/config/application.rb @@ -26,6 +26,7 @@ module Vidpush generate.test_framework :rspec generate.view_specs false end + config.autoload_paths += %W(#{config.root}/lib) # Settings in config/environments/* take precedence over those specified here. # Application configuration should go into files in config/initializers diff --git a/config/environments/development.rb b/config/environments/development.rb index 1ada5ac..08ba00c 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -32,5 +32,7 @@ Vidpush::Application.configure do config.action_controller.action_on_unpermitted_parameters = :raise + config.action_mailer.default_url_options = { host: 'localhost:3000' } + end