Class: Employee::BirthdayMessage
Overview
Service object: birthday message.
Instance Attribute Summary
Attributes inherited from BaseService
#options
Instance Method Summary
collapse
Methods inherited from BaseService
#initialize, #log_debug, #log_error, #log_info, #log_warning, #logger, #tagged_logger
Constructor Details
This class inherits a constructor from BaseService
Instance Method Details
#create_praise(employee_record) ⇒ Object
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# File 'app/services/employee/birthday_message.rb', line 18
def create_praise(employee_record)
logger.info "Creating birthday praise for #{employee_record.employee.full_name}"
p = nil
Praise.transaction do
p = Praise.create!(
employee_records: [employee_record],
praise_type: "birthday",
headline: "Happy Birthday #{employee_record.employee.first_name}!",
praise: "Happy B-Day From Your WarmlyYours Family!",
praise_date: Date.current, image_url: get_badge_attachment,
notify: true,
notify_staff: true
)
p.publish
end
p
end
|
#get_badge_attachment ⇒ Object
41
42
43
|
# File 'app/services/employee/birthday_message.rb', line 41
def get_badge_attachment
Image.find_by(title: 'Birthday Badge').image_url(width: 300, encode_format: :jpeg)
end
|
#load_overdue_employee_records ⇒ Object
37
38
39
|
# File 'app/services/employee/birthday_message.rb', line 37
def load_overdue_employee_records
EmployeeRecord.active_employees.where(EmployeeRecord[:next_birthday].lteq(Date.current)).where(disable_special_events_alerts: false)
end
|
#process ⇒ Object
4
5
6
7
8
9
10
11
12
13
14
15
16
|
# File 'app/services/employee/birthday_message.rb', line 4
def process
praises = []
records = load_overdue_employee_records
logger.info "No birthday to process" if records.blank?
records.each do |er|
praises << create_praise(er)
schedule_next_birthday(er)
end
praises
end
|
#schedule_next_birthday(employee_record) ⇒ Object
45
46
47
48
49
50
|
# File 'app/services/employee/birthday_message.rb', line 45
def schedule_next_birthday(employee_record)
next_year = (Date.current + 1.year).year
employee_record.next_birthday = employee_record.employee.dob.dup.change(year: next_year)
logger.info "Advancing birthday to #{employee_record.next_birthday} for #{employee_record.employee.full_name}"
employee_record.save!
end
|