fix: [API] cleaned up the individual API
parent
7504bfab10
commit
540fd63423
|
@ -73,6 +73,9 @@ class CRUDComponent extends Component
|
|||
$query->order($options['order']);
|
||||
}
|
||||
if ($this->Controller->ParamHandler->isRest()) {
|
||||
if ($this->metaFieldsSupported()) {
|
||||
$query = $this->includeRequestedMetaFields($query);
|
||||
}
|
||||
$data = $query->all();
|
||||
if (isset($options['hidden'])) {
|
||||
$data->each(function($value, $key) use ($options) {
|
||||
|
@ -98,6 +101,12 @@ class CRUDComponent extends Component
|
|||
});
|
||||
}
|
||||
}
|
||||
if ($this->metaFieldsSupported()) {
|
||||
$metaTemplates = $this->getMetaTemplates()->toArray();
|
||||
$data = $data->map(function($value, $key) use ($metaTemplates) {
|
||||
return $this->attachMetaTemplatesIfNeeded($value, $metaTemplates);
|
||||
});
|
||||
}
|
||||
$this->Controller->restResponsePayload = $this->RestResponse->viewData($data, 'json');
|
||||
} else {
|
||||
if ($this->metaFieldsSupported()) {
|
||||
|
@ -663,7 +672,9 @@ class CRUDComponent extends Component
|
|||
if (!empty($newestTemplate) && !empty($metaTemplates[$i])) {
|
||||
$metaTemplates[$i]['hasNewerVersion'] = $newestTemplate;
|
||||
}
|
||||
$metaTemplates[$metaTemplate->id]['meta_template_fields'] = $metaTemplates[$metaTemplate->id]['meta_template_fields'];
|
||||
}
|
||||
$metaTemplates = $metaTemplates;
|
||||
$data['MetaTemplates'] = $metaTemplates;
|
||||
return $data;
|
||||
}
|
||||
|
|
|
@ -61,7 +61,11 @@ class AppModel extends Entity
|
|||
public function rearrangeTags(array $tags): array
|
||||
{
|
||||
foreach ($tags as &$tag) {
|
||||
unset($tag['_joinData']);
|
||||
$tag = [
|
||||
'id' => $tag['id'],
|
||||
'name' => $tag['name'],
|
||||
'colour' => $tag['colour']
|
||||
];
|
||||
}
|
||||
return $tags;
|
||||
}
|
||||
|
@ -70,11 +74,26 @@ class AppModel extends Entity
|
|||
{
|
||||
$rearrangedAlignments = [];
|
||||
$validAlignmentTypes = ['individual', 'organisation'];
|
||||
$alignmentDataToKeep = [
|
||||
'individual' => [
|
||||
'id',
|
||||
'email'
|
||||
],
|
||||
'organisation' => [
|
||||
'id',
|
||||
'uuid',
|
||||
'name'
|
||||
]
|
||||
];
|
||||
foreach ($alignments as $alignment) {
|
||||
foreach ($validAlignmentTypes as $type) {
|
||||
foreach (array_keys($alignmentDataToKeep) as $type) {
|
||||
if (isset($alignment[$type])) {
|
||||
$alignment[$type]['type'] = $alignment['type'];
|
||||
$rearrangedAlignments[$type][] = $alignment[$type];
|
||||
$temp = [];
|
||||
foreach ($alignmentDataToKeep[$type] as $field) {
|
||||
$temp[$field] = $alignment[$type][$field];
|
||||
}
|
||||
$rearrangedAlignments[$type][] = $temp;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -33,12 +33,28 @@ class Individual extends AppModel
|
|||
{
|
||||
$emails = [];
|
||||
if (!empty($this->meta_fields)) {
|
||||
foreach ($this->meta_fields as $metaField) {
|
||||
if (str_contains($metaField->field, 'email')) {
|
||||
$emails[] = $metaField;
|
||||
}
|
||||
}
|
||||
foreach ($this->meta_fields as $metaField) {
|
||||
if (!empty($metaField->field) && str_contains($metaField->field, 'email')) {
|
||||
$emails[] = $metaField;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $emails;
|
||||
}
|
||||
|
||||
public function rearrangeForAPI(): void
|
||||
{
|
||||
if (!empty($this->tags)) {
|
||||
$this->tags = $this->rearrangeTags($this->tags);
|
||||
}
|
||||
if (!empty($this->alignments)) {
|
||||
$this->alignments = $this->rearrangeAlignments($this->alignments);
|
||||
}
|
||||
if (!empty($this->meta_fields)) {
|
||||
$this->rearrangeMetaFields();
|
||||
}
|
||||
if (!empty($this->MetaTemplates)) {
|
||||
unset($this->MetaTemplates);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue