Packages
ckeditor5_phoenix
1.3.0
1.28.2
1.28.1
1.28.0
1.27.2
1.27.1
1.27.0
1.26.0
1.25.1
1.25.0
1.24.2
1.24.1
1.24.0
1.23.0
1.22.0
1.21.0
1.20.0
1.19.0
1.18.0
1.17.2
1.17.1
1.17.0
1.16.1
1.16.0
1.15.8
1.15.7
1.15.6
1.15.5
1.15.4
1.15.3
1.15.2
1.15.1
1.15.0
1.14.2
1.14.1
1.14.0
1.13.0
1.12.0
1.11.0
1.10.2
1.10.1
1.10.0
1.9.0
1.8.0
1.7.0
1.6.0
1.5.0
1.4.1
1.4.0
1.3.0
1.2.1
1.2.0
1.1.0
1.0.8
1.0.7
CKEditor 5 integration for Phoenix Framework
Current section
Files
Jump to
Current section
Files
lib/preset/cloud_compatibility_checker.ex
defmodule CKEditor5.Preset.CloudCompatibilityChecker do
@moduledoc """
Enforces business rules and compatibility constraints for CKEditor5 presets.
Specifically handles Cloud Distribution Channel licensing requirements and configuration validation.
"""
import CKEditor5.License.Assertions, only: [compatible_cloud_distribution?: 1]
import CKEditor5.Preset, only: [configured_cloud?: 1]
alias CKEditor5.{Cloud, Errors, Preset}
@doc """
Checks if the preset's Cloud configuration is valid based on the license type.
"""
def assign_default_cloud_config(%Preset{cloud: _cloud, license: license} = preset) do
cond do
compatible_cloud_distribution?(license) and !configured_cloud?(preset) ->
{:ok, %{preset | cloud: %Cloud{}}}
!compatible_cloud_distribution?(license) and configured_cloud?(preset) ->
{:error, %Errors.CloudCannotBeUsedWithLicenseKey{preset: preset, license: license}}
true ->
{:ok, preset}
end
end
@doc """
Ensures that a preset has Cloud configuration when required.
"""
def ensure_cloud_configured!(%Preset{} = preset) do
cond do
!compatible_cloud_distribution?(preset.license) ->
raise Errors.CloudCannotBeUsedWithLicenseKey, preset: preset, license: preset.license
!configured_cloud?(preset) ->
raise Errors.CloudNotConfigured, preset: preset
true ->
:ok
end
end
end