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