lib/caseblocks_api.rb in caseblocks_api-0.2.16 vs lib/caseblocks_api.rb in caseblocks_api-0.2.17

- old
+ new

@@ -27,15 +27,35 @@ @auth_token = result["token"] if result self.class.default_params("auth_token" => @auth_token) end end - def create_case(params, case_type=nil) + def create_case(params, case_type=nil) params.merge!(:case_type_id => fetch_case_type_id(case_type)) - response = self.class.post("/case_blocks/cases", :body => {:case => params}.to_json) + response = self.class.post("/case_blocks/cases", :body => {:case => params}.to_json) if response.code != 201 response_hash = {:body => response.body, :code => response.code, :message => response.message, :headers => response.headers.inspect} - raise CaseblocksAPI::CaseCreationError.new("Unable to create case - received response code #{response.code}", response_hash) + raise CaseblocksAPI::CaseCreationError.new("Unable to create case - received response code #{response.code}", response_hash) + end + end + + def find_or_create_case(params, case_type=nil) + params.merge!(:case_type_id => fetch_case_type_id(case_type)) + response = self.class.post("/case_blocks/cases", :body => {:unique => true, :case => params}.to_json) + if response.code != 201 + response_hash = {:body => response.body, :code => response.code, :message => response.message, :headers => response.headers.inspect} + raise CaseblocksAPI::CaseCreationError.new("Unable to create case - received response code #{response.code}", response_hash) + end + end + + def create_message(params) + query = {:message => params} + response = self.class.post("/case_blocks/messages", :body => query.to_json) + if response.code != 201 + response_hash = {:body => response.body, :code => response.code, :message => response.message, :headers => response.headers.inspect} + raise CaseblocksAPI::CaseCreationError.new("Unable to create case - received response code #{response.code}", response_hash) + else + return response["message"] end end private