Skip to content

Commit

Permalink
code refactor in instances controller
Browse files Browse the repository at this point in the history
  • Loading branch information
syphax-bouazzouni committed Jan 1, 2022
1 parent c041100 commit 5060c41
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 21 deletions.
2 changes: 1 addition & 1 deletion Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -356,7 +356,7 @@ GEM
macaddr (~> 1.0)

PLATFORMS
x86_64-darwin-21
x86_64-linux

DEPENDENCIES
activesupport (~> 3.0)
Expand Down
28 changes: 15 additions & 13 deletions controllers/instances_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,19 @@ class InstancesController < ApplicationController
cls = get_class(sub)
error 404 if cls.nil?

page, size = page_params
attributes = get_attributes_to_include(includes_param)
order_by = get_order_by_from(@params)
attributes, page, size, filter_by_label, order_by, bring_unmapped_needed = settings_params



page_data = LinkedData::Models::Instance.where(filter_classes_by(cls.id))
.in(sub)
.include(attributes)
page_data.order_by(order_by) unless (order_by.nil?)

page_data.filter(filter_by_label) unless filter_by_label.nil?
page_data.order_by(order_by) unless order_by.nil?
page_data = page_data.page(page,size).all

bring_unmapped_if_needed includes_param, page_data , sub
bring_unmapped_to page_data , sub if bring_unmapped_needed

reply page_data
end
Expand All @@ -30,31 +31,32 @@ class InstancesController < ApplicationController
ont, sub = get_ontology_and_submission
check_last_modified_segment(LinkedData::Models::Instance, [ont.acronym])

page, size = page_params
attributes = get_attributes_to_include(includes_param)
order_by = get_order_by_from(@params)
attributes, page, size, filter_by_label, order_by, bring_unmapped_needed = settings_params

page_data = LinkedData::Models::Instance.where.filter(label_regex_filter)

page_data = LinkedData::Models::Instance.where
.in(sub)
.include(attributes)
page_data.order_by(order_by) unless (order_by.nil?)

page_data.filter(filter_by_label) unless filter_by_label.nil?
page_data.order_by(order_by) unless order_by.nil?
page_data = page_data.page(page,size).all

bring_unmapped_to page_data , sub if bring_unmapped_needed

bring_unmapped_if_needed includes_param, page_data , sub
reply page_data
end

get '/:inst' do
ont, sub = get_ontology_and_submission
check_last_modified_segment(LinkedData::Models::Instance, [ont.acronym])

attributes = get_attributes_to_include(includes_param)
attributes, page, size, filter_by_label, order_by, bring_unmapped_needed = settings_params

page_data = LinkedData::Models::Instance.find(@params["inst"]).include(attributes).in(sub).first

bring_unmapped_to [page_data] , sub if bring_unmapped_needed

bring_unmapped_if_needed includes_param, [page_data] , sub
reply page_data
end
end
Expand Down
25 changes: 18 additions & 7 deletions helpers/instances_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,32 @@
module Sinatra
module Helpers
module InstancesHelper

# TODO: generalize this to all routes (maybe in application_helper)
def settings_params
page, size = page_params
attributes = get_attributes_to_include(includes_param)
order_by = get_order_by_from(@params)
bring_unmapped = bring_unmapped?(includes_param)
filter_by_label = label_regex_filter

[attributes, page, size, filter_by_label, order_by, bring_unmapped]
end

def is_set?(param)
!param.nil? && param != ""
end

def label_regex_filter
(Goo::Filter.new(:label).regex(@params["search"])) if @params["search"] != nil
(Goo::Filter.new(:label).regex(@params["search"])) if is_set?(@params["search"])
end

def filter_classes_by(class_uri)
class_uri.nil? ? nil :{types: RDF::URI.new(class_uri.to_s)}
end

def get_order_by_from(params , default_sort = :label , default_order = :asc)
{(params["sortby"] || default_sort).to_sym => params["order"] || default_order} unless params["sortby"].nil? || params["sortby"] == ""
{(params["sortby"] || default_sort).to_sym => params["order"] || default_order} if is_set?(@params["sortby"])
end

def get_attributes_to_include(includes_param)
Expand All @@ -29,11 +45,6 @@ def bring_unmapped_to(page_data, sub)
LinkedData::Models::Instance.in(sub).models(page_data).include(:unmapped).all
end

def bring_unmapped_if_needed(includes_param , page_data , sub)
if bring_unmapped?(includes_param) && page_data.length > 0
bring_unmapped_to page_data , sub
end
end
end
end
end
Expand Down

0 comments on commit 5060c41

Please sign in to comment.