Sha256: da71d9e95e36ddffbcc7044d8ad67d38bade23ec2f61477cb6814765c8e6cafc

Contents?: true

Size: 1.72 KB

Versions: 88

Compression:

Stored size: 1.72 KB

Contents

# == Schema Information
#
# Table name: easy_ml_datasources
#
#  id              :bigint           not null, primary key
#  name            :string           not null
#  datasource_type :string
#  root_dir        :string
#  configuration   :json
#  created_at      :datetime         not null
#  updated_at      :datetime         not null
#
require "jsonapi/serializer"

module EasyML
  class DatasourceSerializer
    include JSONAPI::Serializer

    set_type :datasource # Optional type for JSON:API

    attributes :id, :name, :datasource_type, :s3_bucket, :s3_prefix, :s3_region, :schema, :columns, :available_files

    attribute :last_synced_at do |datasource|
      if datasource.is_syncing
        "Syncing..."
      else
        datasource.last_updated_at ? datasource.last_updated_at.in_time_zone(EasyML::Configuration.timezone) : "Not Synced"
      end
    end

    attribute :created_at do |datasource|
      datasource.created_at.in_time_zone(EasyML::Configuration.timezone).iso8601
    end

    attribute :updated_at do |datasource|
      datasource.updated_at.in_time_zone(EasyML::Configuration.timezone).iso8601
    end

    attribute :is_synced do |datasource|
      datasource.last_updated_at.present?
    end

    attribute :is_syncing do |datasource|
      datasource.is_syncing
    end

    attribute :sync_failed do |datasource|
      if datasource.is_syncing
        nil
      else
        datasource.events.order(id: :desc).limit(1)&.last&.status == "failed"
      end
    end

    attribute :stacktrace do |datasource|
      if datasource.is_syncing
        nil
      else
        last_event = datasource.events.order(id: :desc).limit(1).last
        last_event&.stacktrace if last_event&.status == "failed"
      end
    end
  end
end

Version data entries

88 entries across 88 versions & 1 rubygems

Version Path
easy_ml-0.2.0.pre.rc101 app/serializers/easy_ml/datasource_serializer.rb
easy_ml-0.2.0.pre.rc100 app/serializers/easy_ml/datasource_serializer.rb
easy_ml-0.2.0.pre.rc99 app/serializers/easy_ml/datasource_serializer.rb
easy_ml-0.2.0.pre.rc98 app/serializers/easy_ml/datasource_serializer.rb
easy_ml-0.2.0.pre.rc97 app/serializers/easy_ml/datasource_serializer.rb
easy_ml-0.2.0.pre.rc96 app/serializers/easy_ml/datasource_serializer.rb
easy_ml-0.2.0.pre.rc95 app/serializers/easy_ml/datasource_serializer.rb
easy_ml-0.2.0.pre.rc94 app/serializers/easy_ml/datasource_serializer.rb
easy_ml-0.2.0.pre.rc93 app/serializers/easy_ml/datasource_serializer.rb
easy_ml-0.2.0.pre.rc92 app/serializers/easy_ml/datasource_serializer.rb
easy_ml-0.2.0.pre.rc91 app/serializers/easy_ml/datasource_serializer.rb
easy_ml-0.2.0.pre.rc90 app/serializers/easy_ml/datasource_serializer.rb
easy_ml-0.2.0.pre.rc89 app/serializers/easy_ml/datasource_serializer.rb
easy_ml-0.2.0.pre.rc88 app/serializers/easy_ml/datasource_serializer.rb
easy_ml-0.2.0.pre.rc85 app/serializers/easy_ml/datasource_serializer.rb
easy_ml-0.2.0.pre.rc84 app/serializers/easy_ml/datasource_serializer.rb
easy_ml-0.2.0.pre.rc83 app/serializers/easy_ml/datasource_serializer.rb
easy_ml-0.2.0.pre.rc82 app/serializers/easy_ml/datasource_serializer.rb
easy_ml-0.2.0.pre.rc81 app/serializers/easy_ml/datasource_serializer.rb
easy_ml-0.2.0.pre.rc78 app/serializers/easy_ml/datasource_serializer.rb