Class: Invitation
Class Method Summary
collapse
Instance Method Summary
collapse
#platform_class_name, #sync_key
aggregate_of, all_except, defaults, #delete, #destroy!, numbered, organic_on, resource_fields, #save, #save_and_notify!, #save_and_notify_changes!, serialize_symbolized_hash_array, #update_and_notify!, update_or_create!, whitelist_attributes
Class Method Details
.generate_code ⇒ Object
48
49
50
|
# File 'app/models/invitation.rb', line 48
def self.generate_code
SecureRandom.urlsafe_base64 4
end
|
Instance Method Details
#course_slug ⇒ Object
19
20
21
|
# File 'app/models/invitation.rb', line 19
def course_slug
course.slug
end
|
#expired? ⇒ Boolean
39
40
41
|
# File 'app/models/invitation.rb', line 39
def expired?
Time.now > expiration_date
end
|
#import_from_resource_h!(json) ⇒ Object
11
12
13
|
# File 'app/models/invitation.rb', line 11
def import_from_resource_h!(json)
update! json.merge(course: Course.locate!(json[:course]))
end
|
#navigable_name ⇒ Object
23
24
25
|
# File 'app/models/invitation.rb', line 23
def navigable_name
I18n.t(:invitation_for, course: course_name)
end
|
#navigation_end? ⇒ Boolean
31
32
33
|
# File 'app/models/invitation.rb', line 31
def navigation_end?
true
end
|
#organization ⇒ Object
15
16
17
|
# File 'app/models/invitation.rb', line 15
def organization
course.organization
end
|
#to_param ⇒ Object
35
36
37
|
# File 'app/models/invitation.rb', line 35
def to_param
code
end
|
#to_resource_h ⇒ Object
27
28
29
|
# File 'app/models/invitation.rb', line 27
def to_resource_h
{ code: code, course: course_slug, expiration_date: expiration_date }
end
|
#unexpired ⇒ Object
43
44
45
46
|
# File 'app/models/invitation.rb', line 43
def unexpired
raise Mumuki::Domain::GoneError, "This invitation has already expired" if expired?
self
end
|