api.contact do api.id @contact.id api.is_company @contact.is_company api.firstname @contact.first_name api.lastname @contact.last_name api.middlename @contact.middle_name api.company @contact.company api.address @contact.address api.website @contact.website api.skype_name @contact.skype_name api.birthday @contact.birthday api.job_title @contact.job_title api.background @contact.background api.author(:id => @contact.author_id, :name => @contact.author.name) unless @contact.author.nil? api.assigned_to(:id => @contact.assigned_to_id, :name => @contact.assigned_to.name) unless @contact.assigned_to.nil? api.array :phones do @contact.phones.each do |phone| api.phone phone end end if @contact.phones.any? api.array :emails do @contact.emails.each do |email| api.email email end end if @contact.emails.any? api.tags @contact.tag_list render_api_custom_values @contact.custom_field_values, api api.created_on @contact.created_on api.updated_on @contact.updated_on api.array :projects do @contact.projects.each do |project| api.project(:id => project.id, :name => project.name) end end if @contact.projects.present? if authorize_for(:notes, :show) api.array :notes do @contact.notes.each do |note| api.note do api.id note.id api.content note.content api.author(:id => note.author_id, :name => note.author.name) unless note.author.nil? api.created_on note.created_on api.updated_on note.updated_on end end end if @contact.notes.present? && User.current.allowed_to?(:view_contacts, @project) end api.array :employees do @contact.employees.each do |employee| api.employee(:id => employee.id, :name => employee.name ) end end if @contact.employees.present? api.array :deals do (@contact.related_deals + @contact.deals).each do |deal| api.deal do api.id deal.id api.price deal.price api.currency deal.currency api.price_type deal.price_type api.name deal.name api.project(:id => deal.project.id, :name => deal.project.name) api.status(:id => deal.status.id, :name => deal.status.name) api.background deal.background api.created_on deal.created_on api.updated_on deal.updated_on end end end if (@contact.related_deals + @contact.deals).present? && User.current.allowed_to?(:view_deals, @project) end