JSFiddle - React, Tailwind, and code Playground

by Andrew Gerst

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>

JavaScript

const id = 'operator-uuid';

const body = {
	android_minversion: null,
};

const oldOperatorSettings = {
  "android_minversion": "5,2,1",
  "customer_view_individual_citation": "0",
  "enable_call_support": "0",
  "genetec_api_hit_parking_rights": "0",
  "map_lookup_meta_to_userdef": null,
  "max_lpn_levenshtein_distance": "0",
  "officer_reports_hide_street": "0",
  "omm_append_common_notes": "1",
  "push_notification_application_id_prefix": null,
  "recent_zones_expired_timeout_in_seconds": "0",
  "show_notes_on_rmc_appeal": "0",
  "side_menu_change_operator_enabled": "0",
  "smsoffersenabled": "0",
  "touch_tone_vehicle_entry_enabled": "1",
  "use_payment_entry_on_cashier_report": "0",
  "whitelabel_termsconditionstype": "2",
};

const changedSettings = _.omitBy(body, (v, k) => {
	console.log('k', k);
  console.log('v', v);
	console.log('oldOperatorSettings[k]', oldOperatorSettings[k]);
	return oldOperatorSettings[k] === v;
});

console.log('changedSettings', changedSettings);

const returnedPromises = _.mapValues(changedSettings, (v, k) => ({ key: k, value: v, operator_id: id }));

console.log('returnedPromises', returnedPromises);

console.log(_.values(returnedPromises));