From f7f21c25af934758d5a3ccd952f37a32bb0a195e Mon Sep 17 00:00:00 2001 From: Damien <damien.burel@maarch.org> Date: Tue, 19 Dec 2017 11:35:58 +0100 Subject: [PATCH] FEAT #6363 Get contact when already exists + ozwillo configuration --- apps/maarch_entreprise/xml/ozwilloConfig.xml | 3 +++ core/Controllers/ContactController.php | 5 +++++ core/Controllers/StoreController.php | 12 ++++++------ core/Models/ContactModelAbstract.php | 7 ++++--- core/Models/CoreConfigModel.php | 19 ++++++++++++++----- 5 files changed, 32 insertions(+), 14 deletions(-) diff --git a/apps/maarch_entreprise/xml/ozwilloConfig.xml b/apps/maarch_entreprise/xml/ozwilloConfig.xml index 9d5c7fc76ea..ed761df3587 100644 --- a/apps/maarch_entreprise/xml/ozwilloConfig.xml +++ b/apps/maarch_entreprise/xml/ozwilloConfig.xml @@ -1,5 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> <ROOT> + <INSTANCE_URI>http://95.142.165.103/</INSTANCE_URI> + <INSTANTIATION_SECRET>iBh0zxQHBKGu7TN5or4djBkwantd9VABzNKwXDlKTxBEg0IUWLHkikF6zyO3PS3</INSTANTIATION_SECRET> + <DESTRUCTION_SECRET></DESTRUCTION_SECRET> <URI>https://accounts.ozwillo-preprod.eu/</URI> <CLIENT_ID>db8aa58f-e578-4ad9-96c6-47d95faa5c65</CLIENT_ID> <CLIENT_SECRET>P4RO8tUhERQLWFIuqVvgtPPaoY16jtZ+4bUTI94AzzM</CLIENT_SECRET> diff --git a/core/Controllers/ContactController.php b/core/Controllers/ContactController.php index 91d4e6ebbeb..f0564653f97 100644 --- a/core/Controllers/ContactController.php +++ b/core/Controllers/ContactController.php @@ -56,6 +56,11 @@ class ContactController $data['isPrivate'] = 'Y'; } + $contact = ContactModel::getByEmail(['email' => $data['email'], 'select' => ['contacts_v2.contact_id', 'contact_addresses.id']]); + if (!empty($contact['id'])) { + return $response->withJson(['contactId' => $contact['contact_id'], 'addressId' => $contact['id']]); + } + $contactId = ContactModel::create($data); $data['contactId'] = $contactId; diff --git a/core/Controllers/StoreController.php b/core/Controllers/StoreController.php index bface426cb1..d477366702e 100644 --- a/core/Controllers/StoreController.php +++ b/core/Controllers/StoreController.php @@ -631,17 +631,17 @@ class StoreController $aArgs['data'][$key]['value'] = ChronoModel::getChrono(['id' => $categoryId, 'entityId' => $document['destination'], 'typeId' => $document['type_id']]); } elseif ($value['column'] == 'exp_contact_id' && !empty($value['value']) && !is_numeric($value['value'])) { $mail = explode('<', str_replace('>', '', $value['value'])); - $contact = ContactModel::getByEmail(['email' => $mail[count($mail) - 1], 'select' => ['contact_id']]); - if (!empty($contact[0]['contact_id'])) { - $aArgs['data'][$key]['value'] = $contact[0]['contact_id']; + $contact = ContactModel::getByEmail(['email' => $mail[count($mail) - 1], 'select' => ['contacts_v2.contact_id']]); + if (!empty($contact['contact_id'])) { + $aArgs['data'][$key]['value'] = $contact['contact_id']; } else { $aArgs['data'][$key]['value'] = 0; } } elseif ($value['column'] == 'address_id' && !empty($value['value']) && !is_numeric($value['value'])) { $mail = explode('<', str_replace('>', '', $value['value'])); - $contact = ContactModel::getByEmail(['email' => $mail[count($mail) - 1], 'select' => ['ca_id']]); - if (!empty($contact[0]['ca_id'])) { - $aArgs['data'][$key]['value'] = $contact[0]['ca_id']; + $contact = ContactModel::getByEmail(['email' => $mail[count($mail) - 1], 'select' => ['contact_addresses.id']]); + if (!empty($contact['id'])) { + $aArgs['data'][$key]['value'] = $contact['ca_id']; } else { $aArgs['data'][$key]['value'] = 0; } diff --git a/core/Models/ContactModelAbstract.php b/core/Models/ContactModelAbstract.php index f0710798c94..1ca5ab410de 100644 --- a/core/Models/ContactModelAbstract.php +++ b/core/Models/ContactModelAbstract.php @@ -156,15 +156,16 @@ class ContactModelAbstract return $labelledContact; } - public static function getByEmail(array $aArgs = []) + public static function getByEmail(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['email']); ValidatorModel::stringType($aArgs, ['email']); + ValidatorModel::arrayType($aArgs, ['select']); $aContacts = DatabaseModel::select([ 'select' => empty($aArgs['select']) ? ['*'] : $aArgs['select'], - 'table' => ['view_contacts'], - 'where' => ['email = ? and enabled = ?'], + 'table' => ['contact_addresses, contacts_v2'], + 'where' => ['contact_addresses.email = ?', 'contacts_v2.enabled = ?', 'contact_addresses.contact_id = contacts_v2.contact_id'], 'data' => [$aArgs['email'], 'Y'], 'order_by' => ['creation_date'], ]); diff --git a/core/Models/CoreConfigModel.php b/core/Models/CoreConfigModel.php index f8bd13fa787..02443acfbce 100755 --- a/core/Models/CoreConfigModel.php +++ b/core/Models/CoreConfigModel.php @@ -127,9 +127,15 @@ class CoreConfigModel return $loggingMethod; } - public static function getOzwilloConfiguration() + public static function getOzwilloConfiguration(array $aArgs = []) { - $customId = CoreConfigModel::getCustomId(); + ValidatorModel::stringType($aArgs, ['customId']); + + if (empty($aArgs['customId'])) { + $customId = CoreConfigModel::getCustomId(); + } else { + $customId = $aArgs['customId']; + } if (file_exists("custom/{$customId}/apps/maarch_entreprise/xml/ozwilloConfig.xml")) { $path = "custom/{$customId}/apps/maarch_entreprise/xml/ozwilloConfig.xml"; @@ -141,9 +147,12 @@ class CoreConfigModel if (file_exists($path)) { $loadedXml = simplexml_load_file($path); if ($loadedXml) { - $ozwilloConfig['uri'] = (string)$loadedXml->URI; - $ozwilloConfig['clientId'] = (string)$loadedXml->CLIENT_ID; - $ozwilloConfig['clientSecret'] = (string)$loadedXml->CLIENT_SECRET; + $ozwilloConfig['instanceUri'] = (string)$loadedXml->INSTANCE_URI; + $ozwilloConfig['instantiationSecret'] = (string)$loadedXml->INSTANTIATION_SECRET; + $ozwilloConfig['destructionSecret'] = (string)$loadedXml->DESTRUCTION_SECRET; + $ozwilloConfig['uri'] = (string)$loadedXml->URI; + $ozwilloConfig['clientId'] = (string)$loadedXml->CLIENT_ID; + $ozwilloConfig['clientSecret'] = (string)$loadedXml->CLIENT_SECRET; } } -- GitLab