Changeset View
Changeset View
Standalone View
Standalone View
src/app/Http/Controllers/API/V4/UsersController.php
Show First 20 Lines • Show All 108 Lines • ▼ Show 20 Lines | public function index() | ||||
if (count($result) > $pageSize) { | if (count($result) > $pageSize) { | ||||
$result->pop(); | $result->pop(); | ||||
$hasMore = true; | $hasMore = true; | ||||
} | } | ||||
// Process the result | // Process the result | ||||
$result = $result->map( | $result = $result->map( | ||||
function ($user) { | function ($user) { | ||||
$data = $user->toArray(); | return $this->userToClient($user); | ||||
$data = array_merge($data, self::userStatuses($user)); | |||||
return $data; | |||||
} | } | ||||
); | ); | ||||
$result = [ | $result = [ | ||||
'list' => $result, | 'list' => $result, | ||||
'count' => count($result), | 'count' => count($result), | ||||
'hasMore' => $hasMore, | 'hasMore' => $hasMore, | ||||
]; | ]; | ||||
▲ Show 20 Lines • Show All 388 Lines • ▼ Show 20 Lines | class UsersController extends Controller | ||||
* Create a response data array for specified user. | * Create a response data array for specified user. | ||||
* | * | ||||
* @param \App\User $user User object | * @param \App\User $user User object | ||||
* | * | ||||
* @return array Response data | * @return array Response data | ||||
*/ | */ | ||||
public static function userResponse(User $user): array | public static function userResponse(User $user): array | ||||
{ | { | ||||
$response = $user->toArray(); | $response = self::userToClient($user, true); | ||||
// Settings | // Settings | ||||
$response['settings'] = []; | $response['settings'] = []; | ||||
foreach ($user->settings()->whereIn('key', self::USER_SETTINGS)->get() as $item) { | foreach ($user->settings()->whereIn('key', self::USER_SETTINGS)->get() as $item) { | ||||
$response['settings'][$item->key] = $item->value; | $response['settings'][$item->key] = $item->value; | ||||
} | } | ||||
// Aliases | // Aliases | ||||
$response['aliases'] = []; | $response['aliases'] = []; | ||||
foreach ($user->aliases as $item) { | foreach ($user->aliases as $item) { | ||||
$response['aliases'][] = $item->alias; | $response['aliases'][] = $item->alias; | ||||
} | } | ||||
// Status info | // Status info | ||||
$response['statusInfo'] = self::statusInfo($user); | $response['statusInfo'] = self::statusInfo($user); | ||||
$response = array_merge($response, self::userStatuses($user)); | |||||
// Add more info to the wallet object output | // Add more info to the wallet object output | ||||
$map_func = function ($wallet) use ($user) { | $map_func = function ($wallet) use ($user) { | ||||
$result = $wallet->toArray(); | $result = $wallet->toArray(); | ||||
if ($wallet->discount) { | if ($wallet->discount) { | ||||
$result['discount'] = $wallet->discount->discount; | $result['discount'] = $wallet->discount->discount; | ||||
$result['discount_description'] = $wallet->discount->description; | $result['discount_description'] = $wallet->discount->description; | ||||
} | } | ||||
Show All 30 Lines | protected static function userStatuses(User $user): array | ||||
'isLdapReady' => $user->isLdapReady(), | 'isLdapReady' => $user->isLdapReady(), | ||||
'isSuspended' => $user->isSuspended(), | 'isSuspended' => $user->isSuspended(), | ||||
'isActive' => $user->isActive(), | 'isActive' => $user->isActive(), | ||||
'isDeleted' => $user->isDeleted() || $user->trashed(), | 'isDeleted' => $user->isDeleted() || $user->trashed(), | ||||
]; | ]; | ||||
} | } | ||||
/** | /** | ||||
* Prepare a user information for the UI | |||||
* | |||||
* @param \App\User $user User object | |||||
* @param bool $full Include all user properties | |||||
* | |||||
* @return array User data as an array | |||||
*/ | |||||
protected static function userToClient(User $user, bool $full = false): array | |||||
{ | |||||
if ($full) { | |||||
$response = $user->toArray(); | |||||
} else { | |||||
$response = [ | |||||
'id' => $user->id, | |||||
'email' => $user->email, | |||||
'status' => $user->status, | |||||
]; | |||||
} | |||||
$response = array_merge($response, self::userStatuses($user)); | |||||
return $response; | |||||
} | |||||
/** | |||||
* Validate user input | * Validate user input | ||||
* | * | ||||
* @param \Illuminate\Http\Request $request The API request. | * @param \Illuminate\Http\Request $request The API request. | ||||
* @param \App\User|null $user User identifier | * @param \App\User|null $user User identifier | ||||
* @param array $settings User settings (from the request) | * @param array $settings User settings (from the request) | ||||
* | * | ||||
* @return \Illuminate\Http\JsonResponse|null The error response on error | * @return \Illuminate\Http\JsonResponse|null The error response on error | ||||
*/ | */ | ||||
▲ Show 20 Lines • Show All 282 Lines • Show Last 20 Lines |