lib/caseblocks_api.rb in caseblocks_api-0.2.3 vs lib/caseblocks_api.rb in caseblocks_api-0.2.4

- old
+ new

@@ -26,26 +26,27 @@ 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 + params.merge!(:case_type_id => fetch_case_type_id(case_type)) 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 + private + + def fetch_case_type_id(case_type_name) + case_types[case_type_name] || find_case_type_by_name(case_type_name) + end + + def find_case_type_by_name(case_type_name) + @case_types = self.class.get("/case_blocks/case_types")["case_types"] + case_type = @case_types.select { |k| k.has_key? case_type_name } + return case_type.first[case_type_name]["id"] unless case_type.nil? + end + + def case_types + @case_types ||= {} + end end end