Sha256: ec68d007ff923f797fcdbfad75d0a0ab27bbe29214045af7fc42de589f80d90c

Contents?: true

Size: 998 Bytes

Versions: 4

Compression:

Stored size: 998 Bytes

Contents

module Effective
  class LearndashCourse < ActiveRecord::Base
    has_many :learndash_enrollments
    has_many :learndash_users, through: :learndash_enrollments

    effective_resource do
      # This user the wordpress credentials
      course_id                 :integer
      status                    :string
      title                     :string

      timestamps
    end

    scope :deep, -> { all }
    scope :sorted, -> { order(:title) }

    validates :course_id, presence: true
    validates :status, presence: true
    validates :title, presence: true

    # Syncs all courses
    def self.refresh!
      courses = all()

      EffectiveLearndash.api.courses.each do |data|
        course = courses.find { |course| course.course_id == data[:id] } || new()
        course.update!(course_id: data[:id], title: data.dig(:title, :rendered), status: data[:status], link: data[:link])
      end

      true
    end

    def to_s
      title.presence || 'learndash course'
    end

  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
effective_learndash-0.1.3 app/models/effective/learndash_course.rb
effective_learndash-0.1.2 app/models/effective/learndash_course.rb
effective_learndash-0.1.1 app/models/effective/learndash_course.rb
effective_learndash-0.1.0 app/models/effective/learndash_course.rb