Sha256: 558cee037dd3bd3215626d07d52fddedf18931f42cb34a2fc7d72295e0714c18
Contents?: true
Size: 1.38 KB
Versions: 42
Compression:
Stored size: 1.38 KB
Contents
# frozen_string_literal: true module FinApps module REST class PortfoliosConsumers < FinAppsCore::REST::Resources include FinApps::Utils::QueryBuilder def list(portfolio_id, params = nil) not_blank(portfolio_id, :portfolio_id) path = build_path(portfolio_id) return super path if params.nil? fail FinAppsCore::InvalidArgumentsError, 'Invalid argument: params' unless params.is_a? Hash super build_query_path(path, params) end def create(portfolio_id, params) not_blank(portfolio_id, :portfolio_id) not_blank(params, :params) return super nil, build_path(portfolio_id, params) if params.is_a?(String) # Single Consumer Subscribe # Array Consumer Subscribe super params, build_path(portfolio_id) end def destroy(portfolio_id, consumer_id) not_blank(portfolio_id, :portfolio_id) not_blank(consumer_id, :consumer_id) # Single Consumer Unsubscribe Only super nil, build_path(portfolio_id, consumer_id) end private def build_path(portfolio_id, consumer_id = nil) consumer_path = if consumer_id "consumers/#{ERB::Util.url_encode(consumer_id)}" else 'consumers' end "portfolios/#{ERB::Util.url_encode(portfolio_id)}/" + consumer_path end end end end
Version data entries
42 entries across 42 versions & 1 rubygems