class Akashiyaki::Client
Constants
- DAKOKU_FORM_FIELDS
- DAKOKU_FORM_ID
- DAKOKU_PAGE_TITLE_RE
- DAKOKU_REQUEST_HEADERS
- DAKOKU_TYPES
- DEFAULT_REQUEST_HEADERS
- LOGIN_FORM_FIELDS
- LOGIN_FORM_ID
- LOGIN_URL
Public Class Methods
new(company_id, login_id, password)
click to toggle source
# File lib/akashiyaki/client.rb, line 40 def initialize(company_id, login_id, password) @account = { company_id: company_id, login_id: login_id, password: password, }.freeze end
Public Instance Methods
finish_break()
click to toggle source
# File lib/akashiyaki/client.rb, line 72 def finish_break res = dakoku(DAKOKU_TYPES[:finish_break]) res.code end
finish_work()
click to toggle source
# File lib/akashiyaki/client.rb, line 62 def finish_work res = dakoku(DAKOKU_TYPES[:finish_work]) res.code end
login()
click to toggle source
# File lib/akashiyaki/client.rb, line 48 def login @account.each do |field, value| login_form[LOGIN_FORM_FIELDS[field]] = value end res = login_form.submit raise NotAuthorized, "failed to log in" unless res.title =~ DAKOKU_PAGE_TITLE_RE res end
start_break()
click to toggle source
# File lib/akashiyaki/client.rb, line 67 def start_break res = dakoku(DAKOKU_TYPES[:start_break]) res.code end
start_work()
click to toggle source
# File lib/akashiyaki/client.rb, line 57 def start_work res = dakoku(DAKOKU_TYPES[:start_work]) res.code end
Private Instance Methods
agent()
click to toggle source
# File lib/akashiyaki/client.rb, line 79 def agent @agent ||= Mechanize.new.tap do |a| a.user_agent_alias = "Mac Mozilla" a.request_headers = DEFAULT_REQUEST_HEADERS end end
authenticity_token()
click to toggle source
# File lib/akashiyaki/client.rb, line 86 def authenticity_token dakoku_form[DAKOKU_FORM_FIELDS[:authenticity_token]] end
dakoku(type)
click to toggle source
# File lib/akashiyaki/client.rb, line 90 def dakoku(type) dakoku_form[DAKOKU_FORM_FIELDS[:local_time]] = Time.now.iso8601 dakoku_form[DAKOKU_FORM_FIELDS[:type]] = type dakoku_form.submit(nil, dakoku_headers) end
dakoku_form()
click to toggle source
# File lib/akashiyaki/client.rb, line 102 def dakoku_form @dakoku_form ||= dakoku_page.form_with(id: DAKOKU_FORM_ID) end
dakoku_headers()
click to toggle source
# File lib/akashiyaki/client.rb, line 96 def dakoku_headers DAKOKU_REQUEST_HEADERS.merge( "X-CSRF-Token" => authenticity_token ) end
dakoku_page()
click to toggle source
# File lib/akashiyaki/client.rb, line 106 def dakoku_page @dakoku_page ||= login end
login_form()
click to toggle source
# File lib/akashiyaki/client.rb, line 110 def login_form @login_form ||= login_page.form_with(id: LOGIN_FORM_ID) end
login_page()
click to toggle source
# File lib/akashiyaki/client.rb, line 114 def login_page @login_page ||= agent.get(LOGIN_URL) end