Skip to content

Commit 3eb9f0a

Browse files
feat: add logs to event procedures create
1 parent aa205bb commit 3eb9f0a

File tree

2 files changed

+67
-3
lines changed

2 files changed

+67
-3
lines changed

app/operations/event_procedures/create.rb

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ def call
1212
create_event_procedure
1313
assign_total_amount_cents(event_procedure)
1414
end
15+
log_success
1516
end
1617

1718
private
@@ -25,7 +26,10 @@ def assign_total_amount_cents(event_procedure)
2526
def create_event_procedure
2627
self.event_procedure = EventProcedure.new(event_procedure_attributes)
2728

28-
fail!(error: event_procedure.errors) unless event_procedure.save
29+
unless event_procedure.save
30+
log_error("EventProcedure", event_procedure.errors.full_messages)
31+
fail!(error: event_procedure.errors)
32+
end
2933

3034
event_procedure
3135
end
@@ -42,11 +46,17 @@ def event_procedure_attributes
4246
end
4347

4448
def validate_procedure(procedure)
45-
fail!(error: procedure.errors) if procedure.errors.any?
49+
return unless procedure.errors.any?
50+
51+
log_error("Procedure", procedure.errors.full_messages)
52+
fail!(error: procedure.errors)
4653
end
4754

4855
def validate_health_insurance(health_insurance)
49-
fail!(error: health_insurance.errors) if health_insurance.errors.any?
56+
return unless health_insurance.errors.any?
57+
58+
log_error("HealthInsurance", health_insurance.errors.full_messages)
59+
fail!(error: health_insurance.errors)
5060
end
5161

5262
def merge_attributes(patient, procedure, health_insurance)
@@ -74,5 +84,18 @@ def find_or_create_patient
7484
def find_or_create_procedure
7585
Procedures::FindOrCreate.result(params: attributes[:procedure_attributes]).procedure
7686
end
87+
88+
def log_success
89+
Rails.logger.info(
90+
">>> EventProcedure created successfully. ID: #{event_procedure.id}, User ID: #{user_id}"
91+
)
92+
end
93+
94+
def log_error(model_name, errors)
95+
Rails.logger.error(
96+
">>> Failed to create EventProcedure. User ID: #{user_id}, " \
97+
"#{model_name} Errors: #{errors.join(', ')}"
98+
)
99+
end
77100
end
78101
end

spec/operations/event_procedures/create_spec.rb

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,31 @@
6767
expect(result.event_procedure.total_amount_cents).to eq(1300)
6868
end
6969

70+
it "logs the success message" do
71+
cbhpm = create(:cbhpm)
72+
procedure = create(:procedure)
73+
create(:cbhpm_procedure, procedure: procedure, cbhpm: cbhpm, anesthetic_port: "1A")
74+
create(:port_value, cbhpm: cbhpm, anesthetic_port: "1A", amount_cents: 1000)
75+
params = {
76+
hospital_id: create(:hospital).id,
77+
cbhpm_id: cbhpm.id,
78+
patient_service_number: "1234567890",
79+
date: Time.zone.now,
80+
urgency: false,
81+
room_type: EventProcedures::RoomTypes::WARD,
82+
payment: EventProcedures::Payments::HEALTH_INSURANCE,
83+
patient_attributes: { id: patient.id, user_id: user.id },
84+
procedure_attributes: { id: procedure.id },
85+
health_insurance_attributes: { id: create(:health_insurance).id }
86+
}
87+
88+
expect(Rails.logger).to receive(:info).with(
89+
/>>> EventProcedure created successfully. ID: \d+, User ID: #{user.id}/
90+
)
91+
92+
described_class.result(attributes: params, user_id: user.id)
93+
end
94+
7095
context "when create a new patient" do
7196
it "creates and does not duplicate the creation" do
7297
cbhpm = create(:cbhpm)
@@ -268,6 +293,22 @@
268293
)
269294
end
270295

296+
it "logs the error message" do
297+
procedure = create(:procedure)
298+
health_insurance = create(:health_insurance)
299+
attributes = {
300+
patient_attributes: { id: patient.id },
301+
procedure_attributes: { id: procedure.id },
302+
health_insurance_attributes: { id: health_insurance.id }
303+
}
304+
305+
expect(Rails.logger).to receive(:error).with(
306+
/>>> Failed to create EventProcedure. User ID: #{user.id}, EventProcedure Errors:/
307+
)
308+
309+
described_class.result(attributes: attributes, user_id: user.id)
310+
end
311+
271312
context "when patient attributes are invalid" do
272313
it "returns errors" do
273314
user = create(:user)

0 commit comments

Comments
 (0)