Module: Ocpp::Rails::ConnectorStatusBackfill
- Defined in:
- app/services/ocpp/rails/connector_status_backfill.rb
Overview
Moves per-connector status from the pre-0.3.0 metadata convention
(connector_
Constant Summary collapse
- LEGACY_KEY =
/\Aconnector_(\d+)_(status|error_code|updated_at)\z/
Class Method Summary collapse
Class Method Details
.run ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'app/services/ocpp/rails/connector_status_backfill.rb', line 11 def self.run Ocpp::Rails::ChargePoint.find_each do |charge_point| = charge_point. || {} legacy = .select { |key, _| key.to_s.match?(LEGACY_KEY) } next if legacy.empty? connector_ids(legacy).each do |connector_id| status = legacy["connector_#{connector_id}_status"] next unless status record = charge_point.connector_statuses.find_or_initialize_by(connector_id: connector_id) next if record.persisted? record.update!(status: status, error_code: legacy["connector_#{connector_id}_error_code"]) end charge_point.update!(metadata: .except(*legacy.keys)) end end |