Sha256: 7a7d82f3fd76e9251aae7a88acd0360312130ec792c6e45454c68ecd8a1b3fc0
Contents?: true
Size: 930 Bytes
Versions: 2
Compression:
Stored size: 930 Bytes
Contents
# frozen_string_literal: true module Arbetsformedlingen PublicationSchema = Dry::Validation.Params do configure do config.type_specs = true config.messages_file = File.expand_path('../../../config/locales/errors.yml', __dir__) predicates(Predicates) end required(:unpublish_at, :string).filled(:yyyy_mm_dd?) required(:name, Types::StrippedString).filled required(:email, Types::StrippedString).filled(:str?, :email?) optional(:publish_at, :string).filled(:yyyy_mm_dd?) end class Publication < Model def initialize(hash) data = hash.dup publish_date = data[:publish_at] || Time.now.utc data[:publish_at] = publish_date.strftime('%Y-%m-%d') data[:unpublish_at] = data[:unpublish_at]&.strftime('%Y-%m-%d') # TODO: Validate that unpublish_at - publish_at is not greater that 180 days super(PublicationSchema.call(data)) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
arbetsformedlingen-0.7.0 | lib/arbetsformedlingen/models/publication.rb |
arbetsformedlingen-0.6.0 | lib/arbetsformedlingen/models/publication.rb |