Add backwards compatibility layer for mail drivers

Support the old format (a simple list of available fields), in addition
to the new format (a map from field names to their types + metadata).

This will be removed after beta.12 is released.
This commit is contained in:
Franz Liedke 2020-01-14 11:45:44 +01:00
parent 1170d5c2cf
commit 1e7fbf1ed9
No known key found for this signature in database
GPG Key ID: 9A0231A879B055F4

View File

@ -33,10 +33,20 @@ class MailDriverSerializer extends AbstractSerializer
);
}
$driver = $driver['driver'];
$settings = $driver['driver']->availableSettings();
if (key($settings) === 0) {
// BACKWARDS COMPATIBILITY: Support a simple list of fields (without
// type or additional metadata).
// Turns ["f1", "f2"] into {"f1": "", "f2": ""}
// @deprecated since 0.1.0-beta.12
$settings = array_reduce($settings, function ($memo, $key) {
return [$key => ''] + $memo;
}, []);
}
return [
'fields' => $driver->availableSettings(),
'fields' => $settings,
];
}