From ee6b50c58319bdb52eab61e16de73622f221bbb3 Mon Sep 17 00:00:00 2001 From: Akshay Gupta Date: Thu, 24 Dec 2020 13:27:29 +0530 Subject: [PATCH] Revert "Improve Sync To User performance (batch 3) (#1898)" This reverts commit 8ff7ba14a089b027c4948c667acf7342cc3db2c1. --- Gemfile | 1 - Gemfile.lock | 1 - app/controllers/api/v3/sync_controller.rb | 10 +++---- .../api/v3/facility_transformer.rb | 4 +-- .../api/v3/patient_transformer.rb | 8 +++--- app/transformers/api/v3/transformer.rb | 26 +++++++++---------- spec/utils.rb | 2 +- 7 files changed, 22 insertions(+), 30 deletions(-) diff --git a/Gemfile b/Gemfile index 70d7174b6d..0aed6a5fec 100644 --- a/Gemfile +++ b/Gemfile @@ -43,7 +43,6 @@ gem "kaminari" gem "lodash-rails" gem "lograge" gem "ougai" -gem "oj" gem "parallel", require: false gem "passenger" gem "pg", ">= 0.18", "< 2.0" diff --git a/Gemfile.lock b/Gemfile.lock index 17c7a222a5..569073c1bf 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -608,7 +608,6 @@ DEPENDENCIES memery memory_profiler mock_redis - oj ougai parallel parallel_tests diff --git a/app/controllers/api/v3/sync_controller.rb b/app/controllers/api/v3/sync_controller.rb index a25742f911..039cc2bf41 100644 --- a/app/controllers/api/v3/sync_controller.rb +++ b/app/controllers/api/v3/sync_controller.rb @@ -11,14 +11,12 @@ def __sync_from_user__(params) end def __sync_to_user__(response_key) - records = records_to_sync - - AuditLog.create_logs_async(current_user, records, "fetch", Time.current) unless disable_audit_logs? + AuditLog.create_logs_async(current_user, records_to_sync, "fetch", Time.current) unless disable_audit_logs? render( - json: Oj.dump({ - response_key => records.map { |record| transform_to_response(record) }, + json: { + response_key => records_to_sync.map { |record| transform_to_response(record) }, "process_token" => encode_process_token(response_process_token) - }, mode: :compat), + }, status: :ok ) end diff --git a/app/transformers/api/v3/facility_transformer.rb b/app/transformers/api/v3/facility_transformer.rb index 860f549785..3bc9f67b74 100644 --- a/app/transformers/api/v3/facility_transformer.rb +++ b/app/transformers/api/v3/facility_transformer.rb @@ -7,9 +7,7 @@ def to_response(facility) "enable_teleconsultation", "teleconsultation_phone_number", "teleconsultation_isd_code", - "teleconsultation_phone_numbers", - "organization_name", - "facility_group_name") + "teleconsultation_phone_numbers") .merge(config: {enable_diabetes_management: facility.enable_diabetes_management, enable_teleconsultation: facility.enable_teleconsultation}, protocol_id: facility.protocol.try(:id)) diff --git a/app/transformers/api/v3/patient_transformer.rb b/app/transformers/api/v3/patient_transformer.rb index 07e41b801a..e1a559d0ff 100644 --- a/app/transformers/api/v3/patient_transformer.rb +++ b/app/transformers/api/v3/patient_transformer.rb @@ -59,10 +59,10 @@ def from_nested_request(payload_attributes) def to_nested_response(patient) Api::V3::Transformer.to_response(patient) - .except("address_id", - "registration_user_id", - "test_data", - "deleted_by_user_id") + .except("address_id") + .except("registration_user_id") + .except("test_data") + .except("deleted_by_user_id") .merge( "address" => Api::V3::Transformer.to_response(patient.address), "phone_numbers" => patient.phone_numbers.map do |phone_number| diff --git a/app/transformers/api/v3/transformer.rb b/app/transformers/api/v3/transformer.rb index 256816fc80..0e4c1db30c 100644 --- a/app/transformers/api/v3/transformer.rb +++ b/app/transformers/api/v3/transformer.rb @@ -1,33 +1,31 @@ class Api::V3::Transformer class << self - def from_request(payload_attributes) - rename_attributes(payload_attributes, from_request_key_mapping) + def from_request(attributes_of_payload) + rename_attributes(attributes_of_payload, key_mapping) end def to_response(model) - rename_attributes(model.attributes, to_response_key_mapping).as_json + rename_attributes(model.attributes, inverted_key_mapping).as_json end def rename_attributes(attributes, mapping) - replace_keys(attributes.to_hash, mapping).with_indifferent_access + mapping = mapping.with_indifferent_access + attributes + .to_hash + .except(*mapping.values) + .transform_keys! { |key| mapping[key] || key } + .with_indifferent_access end - def replace_keys(hsh, mapping) - mapping.each do |k, v| - hsh[v] = hsh.delete(k) - end - hsh - end - - def from_request_key_mapping + def key_mapping { "created_at" => "device_created_at", "updated_at" => "device_updated_at" } end - def to_response_key_mapping - from_request_key_mapping.invert + def inverted_key_mapping + key_mapping.invert end end end diff --git a/spec/utils.rb b/spec/utils.rb index fd9030c540..30d484bf13 100644 --- a/spec/utils.rb +++ b/spec/utils.rb @@ -20,7 +20,7 @@ def to_json_and_back def with_payload_keys Api::V3::Transformer.rename_attributes( - self, Api::V3::Transformer.to_response_key_mapping + self, Api::V3::Transformer.inverted_key_mapping ) end end