app/models/apidae/selection.rb in apidae-1.2.35 vs app/models/apidae/selection.rb in apidae-1.3.0
- old
+ new
@@ -40,24 +40,10 @@
removed_ids = Obj.where(apidae_id: removed).map {|o| o.id}
SelectionObject.where(apidae_selection_id: apidae_sel.id, apidae_object_id: removed_ids).delete_all
end
- def cleanup
- obsolete_count = apidae_selection_objects
- .joins("LEFT JOIN apidae_objs ON apidae_objs.id = apidae_selection_objects.apidae_object_id")
- .where("apidae_objs.id IS NULL")
- .delete_all
- logger.info "Cleaned up #{obsolete_count} obsolete selection-objects associations for selection #{apidae_id}"
-
- dups = apidae_selection_objects.reload.group(:apidae_object_id)
- .select("COUNT(id), apidae_object_id, ARRAY_AGG(id) AS so_ids")
- .having("COUNT(id) > ?", 1).map {|so| so.so_ids}
- dups_count = apidae_selection_objects.where(id: dups.map {|d| d.sort[1..-1]}.flatten).delete_all
- logger.info "Cleaned up #{dups_count} duplicate selection-objects associations for selection #{apidae_id}"
- end
-
def results(where_clause, offset, size)
objects.includes(:town).limit(size).offset(offset).where(where_clause)
end
def total(where_clause)
@@ -104,22 +90,20 @@
def api_object(apidae_obj_id, fields = ["@all"])
query_args = build_args(OBJECTS_ENDPOINT, {obj_ids: [apidae_obj_id], fields: fields})
query_api(query_args, true, false)
end
- # Note : WARNING - updated obj will only contain the provided fields
def add_or_refresh_obj(apidae_obj_id, fields = ["@all"])
if valid_api?
res = api_object(apidae_obj_id, fields)
if res[:results] && res[:results].length == 1
obj_data = res[:results].first.deep_symbolize_keys
add_or_refresh(obj_data)
end
end
end
- # Note : WARNING - updated objs will only contain the provided fields
def add_or_refresh_objs(fields = ["@all"])
if valid_api?
res = api_objects({fields: fields})
if res[:results] && res[:results].length > 0
res[:results].each do |result|
@@ -217,10 +201,10 @@
end
def get_response(args)
response = ''
query = JSON.generate args.except(:url)
- logger.debug "Apidae API query : #{args[:url]}?query=#{query}"
+ logger.info "Apidae API query : #{args[:url]}?query=#{query}"
open("#{args[:url]}?query=#{CGI.escape query}") { |f|
f.each_line {|line| response += line if line}
}
response
end