From e7c66e9c16bb41fdd403e0f6b2099a4f71baf1a2 Mon Sep 17 00:00:00 2001 From: Tyrel Souza Date: Thu, 24 Apr 2014 15:47:47 -0400 Subject: [PATCH] Validations for at least one video listing --- app/controllers/videolistings_controller.rb | 5 ++++- app/models/campaign.rb | 12 ++++++++++-- app/models/videolisting.rb | 7 +++++++ app/views/campaigns/_videolisting.html.erb | 2 +- 4 files changed, 22 insertions(+), 4 deletions(-) diff --git a/app/controllers/videolistings_controller.rb b/app/controllers/videolistings_controller.rb index ee3f7ed..cdb062b 100644 --- a/app/controllers/videolistings_controller.rb +++ b/app/controllers/videolistings_controller.rb @@ -7,7 +7,7 @@ class VideolistingsController < ApplicationController elsif @videolisting.campaign.processed? @videolisting.published = true @videolisting.save - #TODO: SEND OUT EMAIL HERE. + @message = "Campaign Published Successfully." else @message = "Error: Campaign Not Published." @@ -29,4 +29,7 @@ class VideolistingsController < ApplicationController def videolisting_params params.require(:videolisting).permit(:videocode, :producttypeid, :remoteassetsarchive, :voiceoverselection, :musicselection, :clientprovidedscript, :keywords, :focus, :notes, :asseturls) end + + + end diff --git a/app/models/campaign.rb b/app/models/campaign.rb index 04bf917..e1ed05c 100644 --- a/app/models/campaign.rb +++ b/app/models/campaign.rb @@ -6,15 +6,23 @@ class Campaign < ActiveRecord::Base validates :websiteurl, presence: true validates :description, presence: true validates :productsandservices, presence: true + after_save :send_to_better_video + validate :has_at_least_one_videolisting + + + def has_at_least_one_videolisting + errors.add(:base, 'Must add at least one Videolisting') if self.videolistings.blank? + end def init self.clientid = 720 end - after_create :send_to_better_video def send_to_better_video - #TODO Make API Calls + if self.processed_changed? && self.processed == true + #TODO Make API Calls + end end end diff --git a/app/models/videolisting.rb b/app/models/videolisting.rb index a136b74..ae4f0f5 100644 --- a/app/models/videolisting.rb +++ b/app/models/videolisting.rb @@ -3,6 +3,7 @@ class Videolisting < ActiveRecord::Base validates :videocode, presence: true, uniqueness: true validates :voiceoverselection, presence: true validates :musicselection, presence: true + after_save :send_notification_after_change def init self.producttypeid = 721 @@ -12,4 +13,10 @@ class Videolisting < ActiveRecord::Base def asseturls_array self.asseturls.split(',').collect { |url| { asseturl: url.strip } } end + + def send_notification_after_change + if self.published_changed? && self.published == true + #TODO: SEND OUT EMAIL HERE. + end + end end diff --git a/app/views/campaigns/_videolisting.html.erb b/app/views/campaigns/_videolisting.html.erb index d4eaa13..c7d94d4 100644 --- a/app/views/campaigns/_videolisting.html.erb +++ b/app/views/campaigns/_videolisting.html.erb @@ -20,7 +20,7 @@ <%= videolisting.notes %> - asseturls + Asset URLs <% videolisting.asseturls_array.each do |asset| %> <%= asset[:asseturl] %>