payre3p_app/app/models/contact.rb
Nicolas Bally 43efa30250 suite
2019-03-26 10:36:34 +01:00

88 lines
2.1 KiB
Ruby

class Contact < ActiveRecord::Base
belongs_to :admin
has_many :contact_actions
validates :name, :presence => true
#validates :email, :presence => true, :if => :email_needed?
validates :email, :format => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i, :if => :email_needed?
#validates :message, :presence => true
#validates :phone, :presence => true
has_many :contact_files
validates :address, :presence => true, :if => :address_needed?
validates :cp, :presence => true, :if => :address_needed?
validates :city, :presence => true, :if => :address_needed?
has_many :contact_products
has_many :d_products, :through => :contact_products
accepts_nested_attributes_for :contact_products
def email_needed?
true if self.email?
end
def address_needed?
true if self.raison_id == 4
end
before_validation do
if (true or ((raison_id == 4 )) and !self.email? and !self.phone?)
errors.add(:email, "Vous devez indiquer votre numéro de téléphone et/ou votre email")
errors.add(:phone, "Vous devez indiquer votre numéro de téléphone et/ou votre email")
end
end
def syncro
require 'net/https'
require 'open-uri'
@params = {
:name => self.name,
:firstname => self.firstname,
:corporate => self.corporate,
:email => self.email,
:phone => self.phone,
:message => self.message,
:provenance_id => self.provenance_id
}
#api_url = "https://groupe-payre.fr/admin/contacts/api"
api_url ="http://localhost:3030/admin/contacts/api"
@c = Curl::Easy.new(api_url) do |curl|
curl.verbose = true
end
@c.http_post(
Curl::PostField.content(:name, @params[:name]),
Curl::PostField.content(:firstname, @params[:firstname]),
Curl::PostField.content(:corporate, @params[:corporate]),
Curl::PostField.content(:email, @params[:email]),
Curl::PostField.content(:phone, @params[:phone]),
Curl::PostField.content(:message, @params[:message]),
Curl::PostField.content(:provenance_id, @params[:provenance_id])
)
@debug = @c.body_str
end
end