Class: Employee::BirthdayMessage
Instance Method Summary
collapse
Methods inherited from BaseService
#initialize, #log_debug, #log_error, #log_info, #log_warning, #logger, #options, #tagged_logger
Constructor Details
This class inherits a constructor from BaseService
Instance Method Details
#create_praise(employee_record) ⇒ Object
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# File 'app/services/employee/birthday_message.rb', line 16
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
39
40
41
|
# File 'app/services/employee/birthday_message.rb', line 39
def get_badge_attachment
Image.find_by(title: 'Birthday Badge').image_url(width: 300, encode_format: :jpeg)
end
|
#load_overdue_employee_records ⇒ Object
35
36
37
|
# File 'app/services/employee/birthday_message.rb', line 35
def load_overdue_employee_records
EmployeeRecord.active_employees.where(EmployeeRecord[:next_birthday].lteq(Date.current)).where(disable_special_events_alerts: false)
end
|
#process ⇒ Object
2
3
4
5
6
7
8
9
10
11
12
13
14
|
# File 'app/services/employee/birthday_message.rb', line 2
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
43
44
45
46
47
48
|
# File 'app/services/employee/birthday_message.rb', line 43
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
|