class Dscf::Marketplace::BusinessesController
def create
def create business = @clazz.new(model_params.except(:business_license)) if business.save # Add document upload after save if params[:business][:business_license].present? document = Dscf::Core::Document.new( documentable: business, document_type: :business_license ) document.file.attach(params[:business][:business_license]) document.save! end business = @clazz.includes(eager_loaded_associations).find(business.id) if eager_loaded_associations.present? includes = serializer_includes_for_action(:create) options = {include: includes} if includes.present? render_success(data: business, serializer_options: options, status: :created) else render_error(errors: business.errors.full_messages[0], status: :unprocessable_entity) end rescue => e render_error(error: e.message) end
def default_serializer_includes
def default_serializer_includes { index: [ :business_type, :user, :documents ], show: [ :business_type, :user, :documents ], create: [ :business_type, :user, :documents ], update: [ :business_type, :user, :documents ] } end
def eager_loaded_associations
def eager_loaded_associations [ :business_type, :user, :documents ] end
def has_business
def has_business has_business = current_user&.businesses&.exists? || false render_success("business.success.has_business_check", data: {has_business: has_business}) end
def model_params
def model_params params.require(:business).permit( :name, :description, :contact_email, :contact_phone, :tin_number, :business_type_id, :user_id, business_license: :file ) end
def my_businesses
def my_businesses service = MyResourceService.new(current_user) businesses = service.my_businesses(params) options = { include: default_serializer_includes[:index] || [], meta: {resource_type: "my_businesses"} } render_success("businesses.success.index", data: businesses, serializer_options: options) end