1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2024-12-01 12:24:28 +01:00
fab-manager/app/services/slot_service.rb

22 lines
700 B
Ruby
Raw Normal View History

# frozen_string_literal: true
# helpers for managing slots (reservations sub-units)
class SlotService
def cancel(slot)
# first we mark ths slot as cancelled in DB, to free a ticket
slot.update_attributes(canceled_at: DateTime.current)
# then we try to remove this reservation from ElasticSearch, to keep the statistics up-to-date
model_name = slot.reservation.reservable.class.name
client = Elasticsearch::Model.client
model = "Stats::#{model_name}".constantize
client.delete_by_query(
index: model.index_name,
type: model.document_type,
conflicts: 'proceed',
body: { query: { match: { reservationId: slot.reservation.id } } }
)
end
end