iachat/app/views
Shivam Mishra 824164852c
refactor: extract custom attribute methods from FilterService (#13743)
- Extracted 6 custom attribute methods (`custom_attribute_query`,
`attribute_model`, `attribute_data_type`, `build_custom_attr_query`,
`custom_attribute`, `not_in_custom_attr_query`) into a new
`Filters::CustomAttributeFilterHelper` module.
- Added an inline `rubocop:disable` for the intentional
`Lint/ShadowedException` in `coerce_lt_gt_value` — `Date::Error` is a
subclass of `ArgumentError`, but both are listed explicitly for clarity.

## Why `app/services/filters/`

The existing `Filters::FilterHelper` lives in `app/helpers/filters/`,
but that location triggers `Rails/HelperInstanceVariable` for any module
that uses instance variables. The extracted methods share state with
`FilterService` via instance variables (`@attribute_key`, `@account`,
`@custom_attribute`, etc.), so placing them in `app/helpers/` would
require a cop disable.

`app/services/filters/` is a better fit because:
- The module is a service mixin, not a view helper — it's only included
by `FilterService` and its subclasses (`Conversations::FilterService`,
`Contacts::FilterService`, `AutomationRules::ConditionsFilterService`).
- It sits alongside the services that use it.
- No cop disables needed.

---------

Co-authored-by: Vishnu Narayanan <iamwishnu@gmail.com>
2026-03-10 14:15:52 +05:30
..
android_app chore: Universal Linking for Android (#2324) 2021-06-02 08:46:45 -07:00
api feat: add per-webhook secret with backfill migration (#13573) 2026-02-26 17:26:12 +05:30
apple_app chore: Configure iOS universal linking (#10651) 2025-01-08 21:25:11 +05:30
dashboard Initial Commit 2019-08-14 15:18:44 +05:30
devise fix: Fixes wrong copy being sent to users via email invite [cw-1290] (#7159) 2023-05-23 09:37:40 +05:30
fields refactor: extract custom attribute methods from FilterService (#13743) 2026-03-10 14:15:52 +05:30
icons fix: Broken header in public Help Center portal (#11704) 2025-06-11 15:07:24 -04:00
installation/onboarding fix: onboarding/index.html.erb unclosed HTML tags (#10838) 2025-02-06 09:43:38 +05:30
layouts fix: Use page_title with fallback to name for portal display titles (#13719) 2026-03-05 14:20:31 +05:30
mailers feat: Standardize rich editor across all channels (#12600) 2025-12-08 14:43:45 +05:30
microsoft fix: Identity JSON response header (#6326) 2023-02-02 11:01:18 +05:30
platform/api/v1 feat: Add route to list accounts that belongs to a platform_app (#12140) 2025-08-11 21:23:05 +02:00
public/api/v1 fix: Use page_title with fallback to name for portal display titles (#13719) 2026-03-05 14:20:31 +05:30
super_admin feat: show MFA status on Super Admin user page (#13724) 2026-03-09 08:04:36 -07:00
survey/responses feat: Vite + vue 3 💚 (#10047) 2024-10-02 00:36:30 -07:00
widget_tests chore: Remove defer attribute from widget-loader script (#11887) 2025-07-08 15:31:33 +05:30
widgets feat: Add rich text support for widget welcome tagline (#11666) 2025-06-05 14:13:46 -05:00