2019-01-21 16:27:59 +01:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
# Provides methods for Plan & PartnerPlan actions
|
|
|
|
class PlansService
|
|
|
|
class << self
|
|
|
|
def create(type, partner, params)
|
|
|
|
if params[:group_id] == 'all'
|
|
|
|
plans = type.constantize.create_for_all_groups(params)
|
|
|
|
return false unless plans
|
|
|
|
|
|
|
|
plans.each { |plan| partner.add_role :partner, plan } unless partner.nil?
|
|
|
|
{ plan_ids: plans.map(&:id) }
|
|
|
|
else
|
|
|
|
plan = type.constantize.new(params)
|
|
|
|
if plan.save
|
|
|
|
partner&.add_role :partner, plan
|
|
|
|
plan
|
|
|
|
else
|
2019-09-11 11:51:04 +02:00
|
|
|
puts plan.errors
|
|
|
|
{ errors: plan.errors }
|
2019-01-21 16:27:59 +01:00
|
|
|
end
|
|
|
|
end
|
2021-04-30 16:07:19 +02:00
|
|
|
rescue PaymentGatewayError => e
|
2019-01-21 16:27:59 +01:00
|
|
|
{ errors: e.message }
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|