MemberTransformer::transform()   A
last analyzed

Complexity

Conditions 3
Paths 4

Size

Total Lines 28

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 28
rs 9.472
c 0
b 0
f 0
cc 3
nc 4
nop 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Cortex\Auth\Transformers\Adminarea;
6
7
use Cortex\Auth\Models\Member;
8
use Rinvex\Support\Traits\Escaper;
9
use League\Fractal\TransformerAbstract;
10
11
class MemberTransformer extends TransformerAbstract
12
{
13
    use Escaper;
14
15
    /**
16
     * @return array
17
     */
18
    public function transform(Member $member): array
19
    {
20
        $country = $member->country_code ? country($member->country_code) : null;
21
        $language = $member->language_code ? language($member->language_code) : null;
22
23
        return $this->escape([
24
            'id' => (string) $member->getRouteKey(),
25
            'is_active' => (bool) $member->is_active,
26
            'given_name' => (string) $member->given_name,
27
            'family_name' => (string) $member->family_name,
28
            'username' => (string) $member->username,
29
            'email' => (string) $member->email,
30
            'email_verified_at' => (string) $member->email_verified_at,
31
            'phone' => (string) $member->phone,
32
            'phone_verified_at' => (string) $member->phone_verified_at,
33
            'country_code' => (string) optional($country)->getName(),
34
            'country_emoji' => (string) optional($country)->getEmoji(),
35
            'language_code' => (string) optional($language)->getName(),
36
            'title' => (string) $member->title,
37
            'organization' => (string) $member->organization,
38
            'birthday' => (string) $member->birthday,
39
            'gender' => (string) $member->gender,
40
            'social' => (array) $member->social,
41
            'last_activity' => (string) $member->last_activity,
42
            'created_at' => (string) $member->created_at,
43
            'updated_at' => (string) $member->updated_at,
44
        ]);
45
    }
46
}
47