bridge_cache 0.3.19 → 0.3.20
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +1 -1
- data/app/lib/bridge_cache/data/bridge_model.rb +76 -68
- data/app/lib/bridge_cache/jobs/cleanup_job.rb +6 -4
- data/app/lib/bridge_cache/jobs/import_check.rb +29 -20
- data/app/lib/bridge_cache/jobs/import_data.rb +24 -17
- data/app/lib/bridge_cache/jobs/import_row.rb +7 -5
- data/app/lib/bridge_cache/jobs/import_start.rb +13 -14
- data/app/lib/bridge_cache/plugins/csv_dump.rb +89 -79
- data/app/lib/bridge_cache/plugins/data_transform.rb +18 -13
- data/app/lib/bridge_cache/utils/worker_helper.rb +9 -6
- data/app/lib/bridge_cache/webhooks/message.rb +13 -11
- data/app/lib/bridge_cache/webhooks/request.rb +10 -8
- data/app/models/bridge_cache/affiliated_sub_account.rb +12 -7
- data/app/models/bridge_cache/course_template.rb +21 -9
- data/app/models/bridge_cache/custom_field.rb +4 -2
- data/app/models/bridge_cache/domain.rb +14 -7
- data/app/models/bridge_cache/enrollment.rb +4 -2
- data/app/models/bridge_cache/enrollment_profile.rb +4 -4
- data/app/models/bridge_cache/grant.rb +4 -2
- data/app/models/bridge_cache/group.rb +10 -5
- data/app/models/bridge_cache/group_enrollment.rb +5 -3
- data/app/models/bridge_cache/host.rb +3 -2
- data/app/models/bridge_cache/learner_custom_field_value.rb +4 -2
- data/app/models/bridge_cache/live_course.rb +15 -6
- data/app/models/bridge_cache/live_course_enrollment.rb +8 -4
- data/app/models/bridge_cache/live_course_session.rb +9 -4
- data/app/models/bridge_cache/live_course_session_registration.rb +9 -5
- data/app/models/bridge_cache/membership.rb +5 -3
- data/app/models/bridge_cache/program.rb +17 -7
- data/app/models/bridge_cache/program_enrollment.rb +4 -2
- data/app/models/bridge_cache/program_group_enrollment.rb +4 -2
- data/app/models/bridge_cache/program_item.rb +2 -1
- data/app/models/bridge_cache/tag.rb +3 -2
- data/app/models/bridge_cache/tagging.rb +5 -3
- data/app/models/bridge_cache/user.rb +20 -10
- data/app/models/bridge_cache/user_course_visit.rb +6 -3
- data/db/migrate/20170517203244_create_bridge_cache_domains.rb +1 -0
- data/db/migrate/20170517203328_create_bridge_cache_users.rb +1 -0
- data/db/migrate/20170517203421_create_bridge_cache_programs.rb +1 -0
- data/db/migrate/20170517204055_create_bridge_cache_custom_fields.rb +1 -0
- data/db/migrate/20170517204248_create_bridge_cache_grants.rb +1 -0
- data/db/migrate/20170518211404_create_bridge_cache_enrollments.rb +1 -0
- data/db/migrate/20170518211627_create_bridge_cache_groups.rb +1 -0
- data/db/migrate/20170518211703_create_bridge_cache_program_items.rb +1 -0
- data/db/migrate/20170518211714_create_bridge_cache_program_enrollments.rb +1 -0
- data/db/migrate/20170518211736_create_bridge_cache_program_group_enrollments.rb +1 -0
- data/db/migrate/20170518211748_create_bridge_cache_tags.rb +1 -0
- data/db/migrate/20170518211754_create_bridge_cache_taggings.rb +1 -0
- data/db/migrate/20170518211817_create_bridge_cache_course_templates.rb +1 -0
- data/db/migrate/20170523164248_create_bridge_cache_group_enrollments.rb +1 -0
- data/db/migrate/20170523165014_create_bridge_cache_memberships.rb +1 -0
- data/db/migrate/20170615145554_create_bridge_cache_learner_custom_field_values.rb +1 -0
- data/db/migrate/20171017211850_create_affiliated_sub_accounts.rb +1 -0
- data/db/migrate/20171019195443_create_live_courses.rb +1 -0
- data/db/migrate/20171019195503_create_live_course_enrollments.rb +1 -0
- data/db/migrate/20171019195512_create_live_course_session_registrations.rb +1 -0
- data/db/migrate/20171019195516_create_live_course_sessions.rb +1 -0
- data/db/migrate/20171031165231_add_indexes.rb +5 -2
- data/db/migrate/20180316205458_create_bridge_cache_enrollment_profiles.rb +1 -0
- data/db/migrate/20180320190443_add_index_to_enrollment_profile.rb +1 -0
- data/db/migrate/20180406204906_add_uniq_constraints.rb +43 -21
- data/db/migrate/20180801162929_create_bridge_cache_hosts.rb +1 -0
- data/db/migrate/20180925210056_add_bridge_timestamps_to_bridge_models.rb +1 -0
- data/db/migrate/20190801163930_create_user_course_visits.rb +3 -1
- data/db/migrate/20200717142423_add_hris_id_to_bridge_cache_users.rb +1 -0
- data/lib/bridge_cache.rb +1 -0
- data/lib/bridge_cache/version.rb +1 -1
- metadata +16 -2
@@ -1,18 +1,23 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
row.
|
1
|
+
# rubocop:disable Naming/AccessorMethodName
|
2
|
+
module BridgeCache
|
3
|
+
module Plugins
|
4
|
+
class DataTransform
|
5
|
+
def self.set_bridge_id(row)
|
6
|
+
if row.key?('id')
|
7
|
+
row['bridge_id'] = row['id'] if row.key?('id')
|
8
|
+
row.delete('id')
|
9
|
+
end
|
10
|
+
|
11
|
+
row
|
7
12
|
end
|
8
|
-
row
|
9
|
-
end
|
10
13
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
14
|
+
def self.valid_json?(json)
|
15
|
+
json = JSON.parse(json) unless json.instance_of?(Hash)
|
16
|
+
json
|
17
|
+
rescue JSON::ParserError
|
18
|
+
false
|
19
|
+
end
|
16
20
|
end
|
17
21
|
end
|
18
22
|
end
|
23
|
+
# rubocop:enable Naming/AccessorMethodName
|
@@ -1,9 +1,12 @@
|
|
1
|
-
module BridgeCache
|
2
|
-
module
|
3
|
-
|
4
|
-
job_chain
|
5
|
-
|
6
|
-
|
1
|
+
module BridgeCache
|
2
|
+
module Utils
|
3
|
+
module WorkerHelper
|
4
|
+
def self.invoke_next(job_chain, params = [])
|
5
|
+
job_chain ||= []
|
6
|
+
job = job_chain.shift
|
7
|
+
|
8
|
+
return unless job
|
9
|
+
|
7
10
|
job_class = Object.const_get(job[:job].classify)
|
8
11
|
job_class.perform_later(*job[:params].concat(params))
|
9
12
|
end
|
@@ -1,17 +1,19 @@
|
|
1
|
-
module BridgeCache
|
2
|
-
|
3
|
-
|
1
|
+
module BridgeCache
|
2
|
+
module Webhooks
|
3
|
+
class Message
|
4
|
+
attr_reader :payload
|
4
5
|
|
5
|
-
|
6
|
-
|
7
|
-
|
6
|
+
def initialize(payload)
|
7
|
+
@payload = payload
|
8
|
+
end
|
8
9
|
|
9
|
-
|
10
|
-
|
11
|
-
|
10
|
+
def resource_object
|
11
|
+
@payload[@payload['resource']]
|
12
|
+
end
|
12
13
|
|
13
|
-
|
14
|
-
|
14
|
+
def payload_class
|
15
|
+
"BridgeCache::#{@payload['resource'].camelcase}".constantize
|
16
|
+
end
|
15
17
|
end
|
16
18
|
end
|
17
19
|
end
|
@@ -1,12 +1,14 @@
|
|
1
|
-
module BridgeCache
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
1
|
+
module BridgeCache
|
2
|
+
module Webhooks
|
3
|
+
class Request
|
4
|
+
def initialize(payload)
|
5
|
+
@payload = payload
|
6
|
+
end
|
6
7
|
|
7
|
-
|
8
|
-
|
9
|
-
|
8
|
+
def process
|
9
|
+
message = BridgeCache::Webhooks::Message.new(@payload)
|
10
|
+
message.payload_class.public_send("webhook_#{@payload['trigger']}".to_sym, message)
|
11
|
+
end
|
10
12
|
end
|
11
13
|
end
|
12
14
|
end
|
@@ -5,20 +5,25 @@ module BridgeCache
|
|
5
5
|
before_save :fix_item_type
|
6
6
|
|
7
7
|
belongs_to :item, polymorphic: true, optional: true
|
8
|
-
belongs_to :domain, foreign_key: :domain_id, primary_key: BridgeCache.primary_key,
|
8
|
+
belongs_to :domain, foreign_key: :domain_id, primary_key: BridgeCache.primary_key,
|
9
|
+
class_name: BridgeCache::Domain.name, optional: true
|
9
10
|
|
10
11
|
private
|
11
12
|
|
12
13
|
def fix_item_type
|
13
|
-
self.item_type = "BridgeCache::#{
|
14
|
+
self.item_type = "BridgeCache::#{item_type}" unless item_type&.starts_with?('BridgeCache::')
|
14
15
|
end
|
15
16
|
|
16
|
-
|
17
|
-
|
18
|
-
|
17
|
+
class << self
|
18
|
+
private
|
19
|
+
|
20
|
+
def cleanup(current_row_ids)
|
21
|
+
BridgeCache::AffiliatedSubAccount.where.not(bridge_id: current_row_ids).destroy_all
|
22
|
+
end
|
19
23
|
|
20
|
-
|
21
|
-
|
24
|
+
def unique_column_names
|
25
|
+
%w[bridge_id domain_id]
|
26
|
+
end
|
22
27
|
end
|
23
28
|
end
|
24
29
|
end
|
@@ -2,19 +2,31 @@ module BridgeCache
|
|
2
2
|
class CourseTemplate < BridgeBaseModel
|
3
3
|
extend BridgeCache::Data::BridgeModel
|
4
4
|
|
5
|
-
belongs_to :user, foreign_key: :user_id, primary_key: BridgeCache.primary_key, class_name: BridgeCache::User.name,
|
6
|
-
|
7
|
-
belongs_to :
|
8
|
-
|
9
|
-
|
10
|
-
|
5
|
+
belongs_to :user, foreign_key: :user_id, primary_key: BridgeCache.primary_key, class_name: BridgeCache::User.name,
|
6
|
+
optional: true
|
7
|
+
belongs_to :domain, foreign_key: :domain_id, primary_key: BridgeCache.primary_key,
|
8
|
+
class_name: BridgeCache::Domain.name, optional: true
|
9
|
+
belongs_to :sub_account, foreign_key: :sub_account_id, primary_key: BridgeCache.primary_key,
|
10
|
+
class_name: BridgeCache::Domain.name, optional: true
|
11
|
+
has_many :enrollments, foreign_key: :course_template_id, primary_key: BridgeCache.primary_key,
|
12
|
+
class_name: BridgeCache::Enrollment.name
|
13
|
+
has_many :group_enrollments, foreign_key: :course_template_id, primary_key: BridgeCache.primary_key,
|
14
|
+
class_name: BridgeCache::GroupEnrollment.name
|
15
|
+
has_many :affiliated_sub_accounts, primary_key: BridgeCache.primary_key,
|
16
|
+
class_name: BridgeCache::AffiliatedSubAccount.name, as: :item
|
11
17
|
has_many :domains, through: :affiliated_sub_accounts
|
12
|
-
belongs_to :sub_account, foreign_key: :sub_account_id, primary_key: BridgeCache.primary_key,
|
13
|
-
|
18
|
+
belongs_to :sub_account, foreign_key: :sub_account_id, primary_key: BridgeCache.primary_key,
|
19
|
+
class_name: BridgeCache::Domain.name, optional: true
|
20
|
+
has_many :enrollment_profiles, as: :enrollable, primary_key: BridgeCache.primary_key,
|
21
|
+
class_name: BridgeCache::EnrollmentProfile.name
|
14
22
|
|
15
23
|
def self.for_domain(domain_id)
|
16
24
|
includes(:domains)
|
17
|
-
.where(
|
25
|
+
.where(
|
26
|
+
'bridge_cache_affiliated_sub_accounts.domain_id = ? OR bridge_cache_course_templates.sub_account_id = ?',
|
27
|
+
domain_id,
|
28
|
+
domain_id
|
29
|
+
)
|
18
30
|
.references(:domains)
|
19
31
|
end
|
20
32
|
|
@@ -2,8 +2,10 @@ module BridgeCache
|
|
2
2
|
class CustomField < BridgeBaseModel
|
3
3
|
extend BridgeCache::Data::BridgeModel
|
4
4
|
|
5
|
-
belongs_to :domain, foreign_key: :domain_id, primary_key: BridgeCache.primary_key,
|
6
|
-
|
5
|
+
belongs_to :domain, foreign_key: :domain_id, primary_key: BridgeCache.primary_key,
|
6
|
+
class_name: BridgeCache::Domain.name, optional: true
|
7
|
+
has_many :learner_custom_field_values, primary_key: BridgeCache.primary_key, foreign_key: :custom_field_id,
|
8
|
+
class_name: BridgeCache::LearnerCustomFieldValue.name
|
7
9
|
|
8
10
|
def self.unique_column_names
|
9
11
|
%w[bridge_id domain_id]
|
@@ -2,15 +2,22 @@ module BridgeCache
|
|
2
2
|
class Domain < BridgeBaseModel
|
3
3
|
extend BridgeCache::Data::BridgeModel
|
4
4
|
|
5
|
-
has_many :domain_children, primary_key: BridgeCache.primary_key, foreign_key: PARENT_ID,
|
6
|
-
|
5
|
+
has_many :domain_children, primary_key: BridgeCache.primary_key, foreign_key: PARENT_ID,
|
6
|
+
class_name: BridgeCache::Domain.name
|
7
|
+
belongs_to :domain_parent, primary_key: BridgeCache.primary_key, foreign_key: PARENT_ID,
|
8
|
+
class_name: BridgeCache::Domain.name, optional: true
|
7
9
|
|
8
|
-
has_many :domain_ownees, primary_key: BridgeCache.primary_key, foreign_key: OWNER_ID,
|
9
|
-
|
10
|
+
has_many :domain_ownees, primary_key: BridgeCache.primary_key, foreign_key: OWNER_ID,
|
11
|
+
class_name: BridgeCache::Domain.name
|
12
|
+
belongs_to :domain_owner, primary_key: BridgeCache.primary_key, foreign_key: OWNER_ID,
|
13
|
+
class_name: BridgeCache::Domain.name, optional: true
|
10
14
|
|
11
|
-
has_many :programs, primary_key: BridgeCache.primary_key, foreign_key: DOMAIN_ID,
|
12
|
-
|
13
|
-
has_many :
|
15
|
+
has_many :programs, primary_key: BridgeCache.primary_key, foreign_key: DOMAIN_ID,
|
16
|
+
class_name: BridgeCache::Program.name
|
17
|
+
has_many :course_templates, primary_key: BridgeCache.primary_key, foreign_key: DOMAIN_ID,
|
18
|
+
class_name: BridgeCache::CourseTemplate.name
|
19
|
+
has_many :custom_fields, primary_key: BridgeCache.primary_key, foreign_key: DOMAIN_ID,
|
20
|
+
class_name: BridgeCache::CustomField.name
|
14
21
|
has_many :grants, primary_key: BridgeCache.primary_key, foreign_key: DOMAIN_ID, class_name: BridgeCache::Grant.name
|
15
22
|
|
16
23
|
belongs_to :owner, class_name: BridgeCache::User.name, optional: true
|
@@ -6,8 +6,10 @@ module BridgeCache
|
|
6
6
|
joins(:course_template).merge(BridgeCache::CourseTemplate.for_domain(domain_id))
|
7
7
|
end
|
8
8
|
|
9
|
-
belongs_to :user, foreign_key: :user_id, primary_key: BridgeCache.primary_key, class_name: BridgeCache::User.name,
|
10
|
-
|
9
|
+
belongs_to :user, foreign_key: :user_id, primary_key: BridgeCache.primary_key, class_name: BridgeCache::User.name,
|
10
|
+
optional: true
|
11
|
+
belongs_to :course_template, foreign_key: :course_template_id, primary_key: BridgeCache.primary_key,
|
12
|
+
class_name: BridgeCache::CourseTemplate.name, optional: true
|
11
13
|
|
12
14
|
def self.unique_column_names
|
13
15
|
%w[bridge_id]
|
@@ -7,20 +7,20 @@ module BridgeCache
|
|
7
7
|
before_save :parse_json
|
8
8
|
|
9
9
|
def namespace_enrollable_type
|
10
|
-
self.enrollable_type = "BridgeCache::#{
|
10
|
+
self.enrollable_type = "BridgeCache::#{enrollable_type}" unless enrollable_type&.include? 'BridgeCache::'
|
11
11
|
end
|
12
12
|
|
13
13
|
def parse_json
|
14
|
-
json = self.class.parse_config(
|
14
|
+
json = self.class.parse_config(config)
|
15
15
|
self.config = json if json.present?
|
16
16
|
end
|
17
17
|
|
18
18
|
def self.parse_config(config)
|
19
|
-
|
19
|
+
BridgeCache::Plugins::DataTransform.valid_json?(config)
|
20
20
|
end
|
21
21
|
|
22
22
|
def self.format_import_row(row)
|
23
|
-
json =
|
23
|
+
json = parse_config(row['config'])
|
24
24
|
row['config'] = json if json.present?
|
25
25
|
row
|
26
26
|
end
|
@@ -2,8 +2,10 @@ module BridgeCache
|
|
2
2
|
class Grant < BridgeBaseModel
|
3
3
|
extend BridgeCache::Data::BridgeModel
|
4
4
|
|
5
|
-
belongs_to :user, foreign_key: :user_id, primary_key: BridgeCache.primary_key, class_name: BridgeCache::User.name,
|
6
|
-
|
5
|
+
belongs_to :user, foreign_key: :user_id, primary_key: BridgeCache.primary_key, class_name: BridgeCache::User.name,
|
6
|
+
optional: true
|
7
|
+
belongs_to :domain, foreign_key: :domain_id, primary_key: BridgeCache.primary_key,
|
8
|
+
class_name: BridgeCache::Domain.name, optional: true
|
7
9
|
|
8
10
|
def self.unique_column_names
|
9
11
|
%w[bridge_id domain_id]
|
@@ -4,11 +4,16 @@ module BridgeCache
|
|
4
4
|
|
5
5
|
self.inheritance_column = nil
|
6
6
|
|
7
|
-
belongs_to :user, foreign_key: :user_id, primary_key: BridgeCache.primary_key, class_name: BridgeCache::User.name,
|
8
|
-
|
9
|
-
has_many :
|
10
|
-
|
11
|
-
|
7
|
+
belongs_to :user, foreign_key: :user_id, primary_key: BridgeCache.primary_key, class_name: BridgeCache::User.name,
|
8
|
+
optional: true
|
9
|
+
has_many :program_group_enrollments, foreign_key: :group_id, primary_key: BridgeCache.primary_key,
|
10
|
+
class_name: BridgeCache::ProgramGroupEnrollment.name
|
11
|
+
has_many :group_enrollments, foreign_key: :group_id, primary_key: BridgeCache.primary_key,
|
12
|
+
class_name: BridgeCache::GroupEnrollment.name
|
13
|
+
has_many :memberships, foreign_key: :group_id, primary_key: BridgeCache.primary_key,
|
14
|
+
class_name: BridgeCache::Membership.name
|
15
|
+
belongs_to :domain, foreign_key: :domain_id, primary_key: BridgeCache.primary_key,
|
16
|
+
class_name: BridgeCache::Domain.name, optional: true
|
12
17
|
|
13
18
|
def self.unique_column_names
|
14
19
|
%w[bridge_id domain_id]
|
@@ -6,9 +6,11 @@ module BridgeCache
|
|
6
6
|
joins(:course_template).where(bridge_cache_course_templates: { domain_id: domain_id })
|
7
7
|
end
|
8
8
|
|
9
|
-
belongs_to :group, foreign_key: :group_id, primary_key: BridgeCache.primary_key,
|
10
|
-
|
11
|
-
|
9
|
+
belongs_to :group, foreign_key: :group_id, primary_key: BridgeCache.primary_key,
|
10
|
+
class_name: BridgeCache::Group.name, optional: true
|
11
|
+
belongs_to :course_template, foreign_key: :course_template_id, primary_key: BridgeCache.primary_key,
|
12
|
+
class_name: BridgeCache::CourseTemplate.name, optional: true
|
13
|
+
|
12
14
|
def self.unique_column_names
|
13
15
|
%w[bridge_id]
|
14
16
|
end
|
@@ -1,8 +1,9 @@
|
|
1
1
|
module BridgeCache
|
2
2
|
class Host < BridgeBaseModel
|
3
3
|
extend BridgeCache::Data::BridgeModel
|
4
|
-
belongs_to :domain, foreign_key: :domain_id, primary_key: BridgeCache.primary_key,
|
5
|
-
|
4
|
+
belongs_to :domain, foreign_key: :domain_id, primary_key: BridgeCache.primary_key,
|
5
|
+
class_name: 'BridgeCache::Domain', optional: true
|
6
|
+
|
6
7
|
def self.unique_column_names
|
7
8
|
%w[bridge_id]
|
8
9
|
end
|
@@ -6,8 +6,10 @@ module BridgeCache
|
|
6
6
|
joins(:user).where(bridge_cache_users: { domain_id: domain_id })
|
7
7
|
end
|
8
8
|
|
9
|
-
belongs_to :user, foreign_key: :user_id, primary_key: BridgeCache.primary_key, class_name: BridgeCache::User.name,
|
10
|
-
|
9
|
+
belongs_to :user, foreign_key: :user_id, primary_key: BridgeCache.primary_key, class_name: BridgeCache::User.name,
|
10
|
+
optional: true
|
11
|
+
belongs_to :custom_field, foreign_key: :custom_field_id, primary_key: BridgeCache.primary_key,
|
12
|
+
class_name: BridgeCache::CustomField.name, optional: true
|
11
13
|
|
12
14
|
def self.unique_column_names
|
13
15
|
%w[bridge_id]
|
@@ -2,16 +2,25 @@ module BridgeCache
|
|
2
2
|
class LiveCourse < BridgeBaseModel
|
3
3
|
extend BridgeCache::Data::BridgeModel
|
4
4
|
|
5
|
-
belongs_to :user, foreign_key: :user_id, primary_key: BridgeCache.primary_key, class_name: BridgeCache::User.name,
|
6
|
-
|
7
|
-
belongs_to :
|
8
|
-
|
9
|
-
|
5
|
+
belongs_to :user, foreign_key: :user_id, primary_key: BridgeCache.primary_key, class_name: BridgeCache::User.name,
|
6
|
+
optional: true
|
7
|
+
belongs_to :domain, foreign_key: :domain_id, primary_key: BridgeCache.primary_key,
|
8
|
+
class_name: BridgeCache::Domain.name, optional: true
|
9
|
+
belongs_to :sub_account, foreign_key: :sub_account_id, primary_key: BridgeCache.primary_key,
|
10
|
+
class_name: BridgeCache::Domain.name, optional: true
|
11
|
+
has_many :live_course_enrollments, foreign_key: :live_course_id, primary_key: BridgeCache.primary_key,
|
12
|
+
class_name: BridgeCache::LiveCourseEnrollment.name
|
13
|
+
has_many :affiliated_sub_accounts, primary_key: BridgeCache.primary_key,
|
14
|
+
class_name: BridgeCache::AffiliatedSubAccount.name, as: :item
|
10
15
|
has_many :domains, through: :affiliated_sub_accounts
|
11
16
|
|
12
17
|
def self.for_domain(domain_id)
|
13
18
|
includes(:domains)
|
14
|
-
.where(
|
19
|
+
.where(
|
20
|
+
'bridge_cache_affiliated_sub_accounts.domain_id = ? OR bridge_cache_live_courses.sub_account_id = ?',
|
21
|
+
domain_id,
|
22
|
+
domain_id
|
23
|
+
)
|
15
24
|
.references(:domains)
|
16
25
|
end
|
17
26
|
|
@@ -6,10 +6,14 @@ module BridgeCache
|
|
6
6
|
joins(:live_course).merge(BridgeCache::LiveCourse.for_domain(domain_id))
|
7
7
|
end
|
8
8
|
|
9
|
-
belongs_to :user, foreign_key: :user_id, primary_key: BridgeCache.primary_key, class_name: BridgeCache::User.name,
|
10
|
-
|
11
|
-
|
12
|
-
|
9
|
+
belongs_to :user, foreign_key: :user_id, primary_key: BridgeCache.primary_key, class_name: BridgeCache::User.name,
|
10
|
+
optional: true
|
11
|
+
belongs_to :live_course, foreign_key: :live_course_id, primary_key: BridgeCache.primary_key,
|
12
|
+
class_name: BridgeCache::LiveCourse.name, optional: true
|
13
|
+
has_many :live_course_session_registrations, foreign_key: :live_course_enrollment_id,
|
14
|
+
primary_key: BridgeCache.primary_key,
|
15
|
+
class_name: BridgeCache::LiveCourseSessionRegistration.name
|
16
|
+
|
13
17
|
def self.unique_column_names
|
14
18
|
%w[bridge_id]
|
15
19
|
end
|
@@ -6,10 +6,15 @@ module BridgeCache
|
|
6
6
|
joins(:live_course).merge(BridgeCache::LiveCourse.for_domain(domain_id))
|
7
7
|
end
|
8
8
|
|
9
|
-
belongs_to :domain, foreign_key: :domain_id, primary_key: BridgeCache.primary_key,
|
10
|
-
|
11
|
-
belongs_to :
|
12
|
-
|
9
|
+
belongs_to :domain, foreign_key: :domain_id, primary_key: BridgeCache.primary_key,
|
10
|
+
class_name: BridgeCache::Domain.name, optional: true
|
11
|
+
belongs_to :sub_account, foreign_key: :sub_account_id, primary_key: BridgeCache.primary_key,
|
12
|
+
class_name: BridgeCache::Domain.name, optional: true
|
13
|
+
belongs_to :live_course, foreign_key: :live_course_id, primary_key: BridgeCache.primary_key,
|
14
|
+
class_name: BridgeCache::LiveCourse.name, optional: true
|
15
|
+
has_many :live_course_session_registrations, foreign_key: :live_course_session_id,
|
16
|
+
primary_key: BridgeCache.primary_key,
|
17
|
+
class_name: BridgeCache::LiveCourseSessionRegistration.name
|
13
18
|
|
14
19
|
def self.unique_column_names
|
15
20
|
%w[bridge_id domain_id]
|
@@ -6,11 +6,15 @@ module BridgeCache
|
|
6
6
|
joins(:live_course_enrollment).merge(BridgeCache::LiveCourseEnrollment.for_domain(domain_id))
|
7
7
|
end
|
8
8
|
|
9
|
-
belongs_to :user, foreign_key: :user_id, primary_key: BridgeCache.primary_key, class_name: BridgeCache::User.name,
|
10
|
-
|
11
|
-
belongs_to :
|
12
|
-
|
13
|
-
|
9
|
+
belongs_to :user, foreign_key: :user_id, primary_key: BridgeCache.primary_key, class_name: BridgeCache::User.name,
|
10
|
+
optional: true
|
11
|
+
belongs_to :domain, foreign_key: :domain_id, primary_key: BridgeCache.primary_key,
|
12
|
+
class_name: BridgeCache::Domain.name, optional: true
|
13
|
+
belongs_to :live_course_enrollment, primary_key: BridgeCache.primary_key,
|
14
|
+
class_name: BridgeCache::LiveCourseEnrollment.name, optional: true
|
15
|
+
belongs_to :live_course_session, primary_key: BridgeCache.primary_key,
|
16
|
+
class_name: BridgeCache::LiveCourseSession.name, optional: true
|
17
|
+
|
14
18
|
def self.unique_column_names
|
15
19
|
%w[bridge_id]
|
16
20
|
end
|