Sha256: c00c609783556b3bf56e2995798648dbe249ebb0c3856c631a359f517eca33d2
Contents?: true
Size: 1017 Bytes
Versions: 4
Compression:
Stored size: 1017 Bytes
Contents
module NulogyMessageBusProducer # This model saves all subscriptions to external systems. # An external system can subscribe to events and specify the shape of data it would like to receive for the event. class Subscription < ApplicationRecord self.table_name = :message_bus_subscriptions # Run our validator with familar syntax in this model class ValidForSchemaValidator < ActiveModel::EachValidator def validate_each(record, attribute, _value) return if record.schema_key.blank? || record.query.blank? validator = NulogyMessageBusProducer::SubscriberGraphqlSchemaValidator.new validator.validate(record) validator.errors.each { |e| record.errors.add(attribute, e) } end end validates :schema_key, :event_type, presence: true validates :query, presence: true, valid_for_schema: true def self.create_or_update(attrs) find_or_initialize_by(id: attrs[:id]).tap do |model| model.update!(attrs) end end end end
Version data entries
4 entries across 4 versions & 1 rubygems