From f99f48b1559eaf1b8188d1f111cf0b69f3f91a82 Mon Sep 17 00:00:00 2001 From: Franz Liedke Date: Tue, 14 Jan 2020 11:45:44 +0100 Subject: [PATCH] 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. --- src/Api/Serializer/MailDriverSerializer.php | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/Api/Serializer/MailDriverSerializer.php b/src/Api/Serializer/MailDriverSerializer.php index 6cdbad75c..03a23dcfe 100644 --- a/src/Api/Serializer/MailDriverSerializer.php +++ b/src/Api/Serializer/MailDriverSerializer.php @@ -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, ]; }