Sign in

Зарегистрируйтесь, чтобы стать полноправным участником сообщества Masterpro.ws.

API HeadHunter: перечень откликов и история просмотров резюме на rails

Продолжаем исследование актуальной версии API HeadHunter, начатое в материале API HeadHunter: скрипт для обновления резюме (php), и продолженное статьей HeadHunter resume updater on Ruby on Rails, иллюстрирующей процесс написания Ruby-on-Rails приложения. Попробуем оттолкнуться  от кода, описанного на форуме в топике HeadHunter negotiations on Rails, дописав его таким образом, чтобы получить - в виде удобных для просмотра HTML-таблиц - не только перечень ваших откликов на вакансии вкупе с реакцией на них работодателей, но и краткую историю просмотров резюме, что порой способно быть весьма удобной для соискателя фичей.

 

 

За более-менее подробными комментариями позвольте адресовать вас к уже упомянутым материалам блога и форума; здесь же публикую уже готовый код rails-приложения, представляющий из себя хотя и базовый, но, тем не менее, полностью работоспособный концепт, который совершенно нет нужды стесняться дорабатывать, хакать и форкать:

 

Рабочий пример описанного в статье кода, в числе других Rails Examples - всегда возможно найти в тестовом блоге автора на herokuapp.com, welcome.

 

controller

class HhController < ApplicationController
	def index
		if request.GET[:code].present?
			id_hh = ENV['ID_HH'] #'*******************'
			secret_hh = ENV['SECRET_HH'] #'*******************'
						response = Typhoeus::Request.post('https://hh.ru/oauth/token',
				params: { :grant_type => "authorization_code",
					:client_id => id_hh,
					:client_secret => secret_hh,
					:code => params[:code]
				}
			)
			hash = JSON.parse(response.body)

			response = Typhoeus::Request.get('https://api.hh.ru/negotiations/active?pages=1&per_page=15',
				method: :get,
				headers: { Authorization: "Bearer #{hash['access_token']}" }
			)
			@response = JSON.parse(response.body)

			response = Typhoeus::Request.get('https://api.hh.ru/resumes/mine',
				method: :get,
				headers: { Authorization: "Bearer #{hash['access_token']}" }
			)
			response = JSON.parse(response.body)
			@response1 = []

			response['items'].each do |item|
				response = Typhoeus::Request.get('https://api.hh.ru/resumes/' + item['id'] + '/views?pages=1&per_page=5',
					method: :get,
					headers: { Authorization: "Bearer #{hash['access_token']}" }
				)

				@response1 << JSON.parse(response.body)

			end
		end  
	end   
end

 

view

<% if request.GET[:code].nil? %>
<%=  link_to 'Список откликов и просмотры резюме', 'https://hh.ru/oauth/authorize?response_type=code&client_id=' + ENV['ID_HH'] %>
<% else %>
<h3>Отклики на резюме</h3>
<table class="HHTable">
   <thead>
      <tr>
         <th>Company name</th>
         <th>Vacancy</th>
         <th>Id</th>
         <th>Read</th>
         <th>Archived</th>
         <th>Address</th>
         <th>Created at</th>
         <th>Updated at</th>
      </tr>
   </thead>
   <tbody>
      <% @response['items'].each do |item| %>
      <tr>
         <td><%= item['vacancy']['employer']['name'] %></td>
         <td><%= item['vacancy']['name'] %></td>
         <td><%= item['state']['name'] %></td>
         <td><%= item['read'] %></td>
         <td><%= item['vacancy']['archived'] %></td>
         <td><%= item['vacancy']['address'] %></td>
         <td><%= item['created_at'] %></td>
         <td><%= item['updated_at'] %></td>
      </tr>
      <% end %>
   </tbody>
</table>
<h3>Просмотры резюме</h3>
<table class="HHTable">
   <thead>
      <tr>
         <th>Date</th>
         <th>Сompany name</th>
         <th>Logo</th>
      </tr>
   </thead>
   <tbody>
      <% @response1.each do |item| %>
      <% item['items'].each do |a| %>
      <tr>
         <td><%= a['created_at'] %></td>
         <td><a href="/<%= a['employer']['alternate_url'] %>" target="_blank" ><%= a['employer']['name'] %></a></td>
         <td><img src="/<%= a['employer']['logo_urls']['90'] %>" /></td>
      </tr>
      <% end %>
      <% end %>
   </tbody>
</table>
<% end %>

Оставить комментарий

Добавьте ваш комментарий