Sha256: 570c7cae8d73d4f9a69d39d8574eb74486646e127178e843bb852a33d056ac7e
Contents?: true
Size: 984 Bytes
Versions: 2
Compression:
Stored size: 984 Bytes
Contents
# frozen_string_literal: true module ConvenientService module Service module Plugins module HasResultParamsValidations module UsingDryValidation class Middleware < Core::MethodChainMiddleware def next(...) return entity.failure(data: errors) if errors.any? chain.next(...) end private ## # NOTE: An example of `Dry::Validation::Contract` usage. # https://dry-rb.org/gems/dry-validation/1.8/#quick-start # # TODO: Return one or all errors? # def errors @errors ||= entity .class .contract .new .call(**entity.constructor_params.kwargs) .errors .to_h .transform_values(&:first) end end end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems