refactor generate alias, add transaction to addStatus

This commit is contained in:
ma0068
2024-08-02 13:55:46 +02:00
parent 9dc421e789
commit 90162ed2c9
3 changed files with 33 additions and 78 deletions
+15 -7
View File
@@ -94,9 +94,9 @@ class Benutzer_model extends DB_Model
}
/**
* Generates alias for a uid.
* @param $uid
* @return array the alias if newly generated
* Generates alias for a person_id
* @param $person_id
* @return string
*/
public function generateAliasByPersonId($person_id)
{
@@ -106,12 +106,19 @@ class Benutzer_model extends DB_Model
$nameresult = $this->execQuery($sql, array($person_id));
$nameresult = getData($nameresult) ?: null;
$nameresult = current(getData($nameresult)) ?: null;
// if($aliasdata)
// $alias = $this->_sanitizeAliasName($aliasdata->vorname).'.'.$this->_sanitizeAliasName($aliasdata->nachname);
if($nameresult)
{
$alias = $this->_sanitizeAliasName($nameresult->vorname).'.'.$this->_sanitizeAliasName($nameresult->nachname);
return success($nameresult->vorname . " " . $nameresult->nachname);
$aliasexists = $this->aliasExists($alias);
if (hasData($aliasexists) && current(getData($aliasexists)))
$alias = "";
}
return success($alias);
}
// --------------------------------------------------------------------------------------------
@@ -122,6 +129,7 @@ class Benutzer_model extends DB_Model
* @param string $str
* @return string
*/
private function _sanitizeAliasName($str)
{
$str = sanitizeProblemChars($str);
@@ -375,53 +375,5 @@ class Person_model extends DB_Model
]);
}
public function generateAliasByPersonId($person_id)
{
$this->addSelect('vorname, nachname');
return success ($this->loadWhere(array('person_id' => $person_id)));
}
/* public function generateAliasByPersonId($person_id)
{
$this->addSelect('vorname, nachname');
$result = $this->loadWhere(array('person_id' => $person_id));
// Überprüfe, ob ein Ergebnis zurückgegeben wurde
if ($result) {
$result = getData($result);
$result = $result->retval[0];
$vorname = $result->vorname;
$nachname = $result->nachname;
// Sanitize the extracted names
$sanitizedVorname = $this->sanitizeAliasName($vorname);
$sanitizedNachname = $this->sanitizeAliasName($nachname);
// Erstelle den Alias
$alias = $sanitizedVorname . '.' . $sanitizedNachname;
// Gib den Erfolg zurück mit dem generierten Alias
return success($alias);
} else {
// Falls kein Ergebnis gefunden wurde, gib einen Fehler zurück
return error('Person not found');
}
}*/
/**
* Sanitizes a string used for alias. Replaces special characters, spaces, sets lower case.
* @param string $str
* @return string
*/
public function sanitizeAliasName($str)
{
$str = sanitizeProblemChars($str);
return success (mb_strtolower(str_replace(' ','_', $str)));
}
}