knowndecimal/fulfil

View on GitHub

Showing 83 of 83 total issues

Class Client has 22 methods (exceeds 20 allowed). Consider refactoring.
Open

class Client
class InvalidClientError < StandardError
def message
'Client is not configured correctly.'
end
Severity: Minor
Found in lib/fulfil/client.rb - About 2 hrs to fix

    Complex method Fulfil::Model#fetch_associated (31.1)
    Open

    def fetch_associated(models:, association_name:, source_key:, fields:)
    source_keys = source_key.split('.')
    associated_ids =
    models.map { |model| model.dig(*source_keys) }.flatten.compact.uniq
     
     
    Severity: Minor
    Found in lib/fulfil/model.rb by flog

    Complex method Fulfil::ResponseParser::group (29.2)
    Open

    def self.group(key_value_tuples)
    key_value_tuples
    .group_by { |kv_tuple| kv_tuple[0][0] }
    .map do |group_key, kv_tuples|
    if kv_tuples.length == 1
    Severity: Minor
    Found in lib/fulfil/response_parser.rb by flog

    Complex method Fulfil::Client#request (26.1)
    Open

    def request(endpoint:, verb: :get, **args)
    raise InvalidClientError if invalid?
     
    response = client.request(verb, endpoint, args)
    Fulfil::ResponseHandler.new(response).verify!
    Severity: Minor
    Found in lib/fulfil/client.rb by flog

    Fulfil::Query#build_search_term refers to 'value' more than self (maybe move it to another class?)
    Open

    case value.class.name
    when 'Array'
    [[key, 'in', value]]
    when 'Fixnum', 'Integer'
    [[key, '=', value]]
    Severity: Minor
    Found in lib/fulfil/query.rb by reek

    Fulfil::Query#build_search_term has 4 parameters
    Open

    def build_search_term(field:, value:, options:, prefix: nil)
    Severity: Minor
    Found in lib/fulfil/query.rb by reek

    Fulfil::Model#fetch_associated contains iterators nested 2 deep
    Open

    model.dig(*source_keys).map { |id| associated_models_by_id[id] }
    Severity: Minor
    Found in lib/fulfil/model.rb by reek

    Fulfil::Model#fetch_associated has approx 12 statements
    Open

    def fetch_associated(models:, association_name:, source_key:, fields:)
    Severity: Minor
    Found in lib/fulfil/model.rb by reek

    Fulfil::Query#build_exclude_term has approx 7 statements
    Open

    def build_exclude_term(field:, value:, options:, prefix: nil)
    Severity: Minor
    Found in lib/fulfil/query.rb by reek

    Fulfil::Client#request has approx 17 statements
    Open

    def request(endpoint:, verb: :get, **args)
    Severity: Minor
    Found in lib/fulfil/client.rb by reek

    Fulfil::Query#search contains iterators nested 2 deep
    Open

    arg.each do |field, value|
    Severity: Minor
    Found in lib/fulfil/query.rb by reek

    Fulfil::Client#initialize has boolean parameter 'debug'
    Open

    def initialize(subdomain: SUBDOMAIN, token: oauth_token, headers: { 'X-API-KEY' => API_KEY }, debug: false)
    Severity: Minor
    Found in lib/fulfil/client.rb by reek

    Fulfil::Client#put has 4 parameters
    Open

    def put(model: nil, id: nil, endpoint: nil, body: {})
    Severity: Minor
    Found in lib/fulfil/client.rb by reek

    Fulfil::Model#fetch_associated refers to 'source_keys' more than self (maybe move it to another class?)
    Open

    if source_keys.length > 1
    model.dig(*source_keys[0..-2]).store(
    source_keys.last,
    filtered_models
    )
    Severity: Minor
    Found in lib/fulfil/model.rb by reek

    Fulfil::Query#build_search_term has approx 9 statements
    Open

    def build_search_term(field:, value:, options:, prefix: nil)
    Severity: Minor
    Found in lib/fulfil/query.rb by reek

    Fulfil::Model#fetch_associated refers to 'model' more than self (maybe move it to another class?)
    Open

    models.map { |model| model.dig(*source_keys) }.flatten.compact.uniq
     
    return [] if associated_ids.none?
     
    associated_models =
    Severity: Minor
    Found in lib/fulfil/model.rb by reek

    Fulfil::Query#exclude contains iterators nested 2 deep
    Open

    arg.map do |field, value|
    Severity: Minor
    Found in lib/fulfil/query.rb by reek

    Fulfil::Model#fetch_associated has 4 parameters
    Open

    def fetch_associated(models:, association_name:, source_key:, fields:)
    Severity: Minor
    Found in lib/fulfil/model.rb by reek

    Fulfil::Model#search has 6 parameters
    Open

    def search(
    Severity: Minor
    Found in lib/fulfil/model.rb by reek

    Fulfil::Query#build_exclude_term refers to 'value' more than self (maybe move it to another class?)
    Open

    case value.class.name
    when 'Array'
    [[key, 'not in', value]]
    when 'Fixnum', 'Integer'
    [[key, '!=', value]]
    Severity: Minor
    Found in lib/fulfil/query.rb by reek
    Severity
    Category
    Status
    Source
    Language