vidpush/app/models/videolisting.rb

61 lines
1.5 KiB
Ruby
Raw Normal View History

2014-04-25 20:02:47 +00:00
require 'securerandom'
2014-04-07 18:41:34 +00:00
class Videolisting < ActiveRecord::Base
belongs_to :campaign
validates :videocode, presence: true, uniqueness: true
validates :voiceoverselection, presence: true
validates :musicselection, presence: true
after_create :fix_videocode
after_save :send_notification_after_change
2014-04-24 21:13:39 +00:00
after_initialize :set_defaults
2014-04-25 20:02:47 +00:00
before_validation :set_videocode
2014-04-25 20:02:47 +00:00
def get_video_url
"http://video2.bettervideo.com/video/pro/MP4640x360/720.#{videocode}.mp4"
end
2014-04-24 21:13:39 +00:00
2014-04-25 20:02:47 +00:00
def get_preview_url
"http://video2.bettervideo.com/video/pro/jpg640x360/720.#{videocode}.jpg"
2014-04-24 16:51:50 +00:00
end
2014-04-15 17:04:58 +00:00
def asseturls_array
2014-04-18 19:34:44 +00:00
self.asseturls.split(',').collect { |url| { asseturl: url.strip } }
2014-04-15 17:04:58 +00:00
end
2014-05-02 20:55:27 +00:00
def as_json
{
assets: self.asseturls_array,
clientprovidedscript: self.clientprovidedscript,
musicselection: self.musicselection,
notes: self.notes,
producttypeid: 721,
toneofvideo: self.toneofvideo,
videocode: self.videocode,
voiceoverselection: self.voiceoverselection
}.as_json
end
2014-04-25 20:02:47 +00:00
private
def set_videocode
self.videocode ||= SecureRandom.hex
end
def fix_videocode
2014-04-30 19:53:58 +00:00
if self.campaign
self.videocode = "#{self.campaign.listingcode}-#{self.id}"
self.save
end
end
2014-04-25 20:02:47 +00:00
def set_defaults
self.producttypeid = 721
end
def send_notification_after_change
if self.published_changed? && self.published?
#TODO: SEND OUT EMAIL HERE TO CLIENT SERVICES REP
end
true
end
2014-04-07 18:41:34 +00:00
end