class NeAPI::Master
Constants
- PATH_PREFIX
Attributes
access_token[RW]
access_token_end_date[RW]
refresh_token[RW]
refresh_token_end_date[RW]
retry_num[RW]
wait_flag[RW]
wait_interval[RW]
Public Class Methods
new(access_token: "", refresh_token: "")
click to toggle source
# File lib/ne_api.rb, line 43 def initialize access_token: "", refresh_token: "" @@params = YAML.load_file(File.join(File.dirname(__FILE__),"../config/api.yaml")) @access_token = access_token @refresh_token = refresh_token @wait_flag = false @retry_num = 10 @wait_interval = 15 end
Public Instance Methods
force_import()
click to toggle source
# File lib/ne_api.rb, line 52 def force_import @wait_flag = true end
method_missing(path, args={})
click to toggle source
Calls superclass method
# File lib/ne_api.rb, line 94 def method_missing(path, args={}) super if @@params.nil? || path.nil? unless models = /^(.*)_.*$/.match(path.to_s) super end model = models.captures.first.to_sym method = path.to_s.split("_").last if @@params.key?(model) && @@params[model][:method].include?(method) get_key = nil query = (args[:query].present? ? args[:query] : nil) fields = (args[:fields].present? ? args[:fields] : nil) params = (args[:params].present? ? args[:params] : {}) case method when "count" get_key = "count" when "search" req= @@params[model] query ||= req[:query] fields ||= req[:fields].gsub(/^\s*/,req[:prefix]+"_").gsub(/,\s*/,","+@@params[model][:prefix]+"_") fields= fields get_key = "data" when "info" query = nil when "update", "upload", "receipted", "shipped", "labelprinted", "add", "bulkupdate", "bulkupdatereceipted" get_key = "result" when "divide" get_key = "receive_order_id" when "checkconnect" fields = nil get_key = nil else super end self.post method: method, model: model, query: query, fields: fields, get_key: get_key, params: params else super end end
post(method: nil , model: nil, query: nil, fields: nil, get_key: nil, params: {})
click to toggle source
# File lib/ne_api.rb, line 61 def post method: nil , model: nil, query: nil, fields: nil, get_key: nil, params: {} raise NeAPIException, "no token!" if @access_token.nil? || @refresh_token.nil? params = params.merge({wait_flag: 1}) if @wait_flag if fields.present? && query.present? post_args = {access_token: @access_token, refresh_token: @refresh_token, fields: fields}.merge(query).merge(params) elsif fields.present? post_args = {access_token: @access_token, refresh_token: @refresh_token, fields: fields}.merge(params) elsif query.present? post_args = {access_token: @access_token, refresh_token: @refresh_token}.merge(query).merge(params) else post_args = {access_token: @access_token, refresh_token: @refresh_token}.merge(params) end res = false self.retry_num.times do res =response(conn.post PATH_PREFIX+model.to_s+ "/" + method, post_args) break if res != false sleep(self.wait_interval) end if res == false raise NeAPIException, "003001:Next Engineが大変混み合っています。APIの接続を#{self.retry_num}回、#{self.wait_interval}秒間隔でアクセスを試みましたが、失敗をしました" return false end @access_token = res["access_token"] if res["access_token"].present? @refresh_token = res["refresh_token"] if res["refresh_token"].present? @access_token_end_date = res["access_token_end_date"] if res["access_token_end_date"].present? @refresh_token_end_date = res["refresh_token_end_date"] if res["refresh_token_end_date"].present? get_key.present? ? res[get_key] : res end
update_token()
click to toggle source
# File lib/ne_api.rb, line 56 def update_token end