Sha256: e69f26372f04f034537c5f87d76f11ee0b4b52571268861eba5cd04503aae2af

Contents?: true

Size: 1.16 KB

Versions: 1

Compression:

Stored size: 1.16 KB

Contents

require "httparty"
require "json"
require "caseblocks_api/authentication_exception"
require 'pry'

module CaseblocksAPI
	class Client
		include HTTParty
		
		attr_reader :auth_token
		
		headers "Accept" => "application/json"
		headers "Content-Type" => "application/json"
		
		def initialize(email, password, url)
			self.class.base_uri url
			result =  self.class.post("/tokens", :body => {email: email, password: password}.to_json)
			if result["message"]
				raise CaseblocksAPI::AuthenticationException.new(result["message"])
			else
				@auth_token = result["token"] if result
				self.class.default_params("auth_token" => @auth_token)
			end
		end 
		
		def create_case(params, case_type=nil)
			if case_type
				case_type_id = get_casetype_id(case_type)
			end
			if case_type_id
				params = params.merge(:case_type_id => case_type_id)
			end
			self.class.post("/case_blocks/cases", :body => {:case => params}.to_json)
		end
		
		def get_casetype_id(case_type_name)
			response = self.class.get("/case_blocks/case_types")["case_types"]
			response.each do |case_type|
				if case_type.has_value? case_type_name
					return case_type["id"]
				end
			end
			nil
		end
		
	end	
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
caseblocks_api-0.1.1 lib/caseblocks_api.rb