From 3e950036d0a1ea520f2aca11f5f0a58ca5d46a77 Mon Sep 17 00:00:00 2001 From: Faizaan Gagan Date: Mon, 26 Apr 2021 06:46:23 +0530 Subject: [PATCH] various fixes --- .../discourse/models/custom-wizard.js.es6 | 2 +- lib/custom_wizard/mapper.rb | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/assets/javascripts/discourse/models/custom-wizard.js.es6 b/assets/javascripts/discourse/models/custom-wizard.js.es6 index e6a8408d..1e7b62e7 100644 --- a/assets/javascripts/discourse/models/custom-wizard.js.es6 +++ b/assets/javascripts/discourse/models/custom-wizard.js.es6 @@ -161,7 +161,7 @@ const CustomWizard = EmberObject.extend({ input.pairs = []; inpt.pairs.forEach((pr) => { - if (present(pr.key) && present(pr.value)) { + if ((present(pr.key) && present(pr.value)) || pr.key_type == "wizardUser") { let pairParams = { index: pr.index, key: pr.key, diff --git a/lib/custom_wizard/mapper.rb b/lib/custom_wizard/mapper.rb index 310ab57e..90ed50b8 100644 --- a/lib/custom_wizard/mapper.rb +++ b/lib/custom_wizard/mapper.rb @@ -106,7 +106,12 @@ class CustomWizard::Mapper pairs.all? do |pair| connector = pair['connector'] operator = map_operator(connector) - key = map_field(pair['key'], pair['key_type']) + if pair['key_type'] == 'wizard_user' + key = @user.username + else + key = map_field(pair['key'], pair['key_type']) + end + value = cast_value(map_field(pair['value'], pair['value_type']), key, connector) begin validation_result(key, value, operator) @@ -119,6 +124,8 @@ class CustomWizard::Mapper def cast_value(value, key, connector) if connector == 'regex' Regexp.new(value) + elsif connector == 'in' + value.to_a else if key.is_a?(String) value.to_s @@ -140,7 +147,7 @@ class CustomWizard::Mapper result = key.public_send(operator, ActiveRecord::Type::Boolean.new.cast(value)) end elsif operator === 'in' - result = value.includes?(key) + result = value.include?(key) elsif [key, value, operator].all? { |i| !i.nil? } result = key.public_send(operator, value) else @@ -216,7 +223,7 @@ class CustomWizard::Mapper end end - def map_current_user(value) + def map_wizard_user(value) @user.username end