improve default profile behavior

This commit is contained in:
Marc Michalsky 2023-08-16 11:22:54 +02:00
parent 518f8809c7
commit ab27dccbe7
Signed by untrusted user who does not match committer: marc.koch
GPG key ID: 12406554CFB028B9
4 changed files with 44 additions and 17 deletions

View file

@ -124,6 +124,15 @@ class CRM_Twingle_Profile {
$this->name = $name;
}
/**
* Is this the default profile?
*
* @return bool
*/
public function is_default() {
return $this->name == 'default';
}
/**
* Retrieves an attribute of the profile.
*
@ -359,18 +368,29 @@ class CRM_Twingle_Profile {
* @param $project_id
*
* @return CRM_Twingle_Profile
* @throws \CRM_Twingle_Exceptions_ProfileException
* @throws \Civi\Core\Exception\DBQueryException
*/
public static function getProfileForProject($project_id) {
$profiles = self::getProfiles();
$default_profile = NULL;
foreach ($profiles as $profile) {
if ($profile->matches($project_id)) {
return $profile;
}
if ($profile->is_default()) {
$default_profile = $profile;
}
}
// If none matches, use the default profile.
return $profiles['default'];
if (!empty($default_profile)) {
return $default_profile;
}
else {
throw new ProfileException('Could not find default profile', ProfileException::ERROR_CODE_DEFAULT_PROFILE_NOT_FOUND);
}
}
/**