Page MenuHomePhorge

D3038.1775171600.diff
No OneTemporary

Authored By
Unknown
Size
10 KB
Referenced Files
None
Subscribers
None

D3038.1775171600.diff

diff --git a/src/app/Http/Controllers/API/V4/Admin/DomainsController.php b/src/app/Http/Controllers/API/V4/Admin/DomainsController.php
--- a/src/app/Http/Controllers/API/V4/Admin/DomainsController.php
+++ b/src/app/Http/Controllers/API/V4/Admin/DomainsController.php
@@ -51,11 +51,11 @@
}
// Process the result
- $result = $result->map(function ($domain) {
- $data = $domain->toArray();
- $data = array_merge($data, self::domainStatuses($domain));
- return $data;
- });
+ $result = $result->map(
+ function ($domain) {
+ return $this->domainToClient($domain);
+ }
+ );
$result = [
'list' => $result,
diff --git a/src/app/Http/Controllers/API/V4/Admin/GroupsController.php b/src/app/Http/Controllers/API/V4/Admin/GroupsController.php
--- a/src/app/Http/Controllers/API/V4/Admin/GroupsController.php
+++ b/src/app/Http/Controllers/API/V4/Admin/GroupsController.php
@@ -37,16 +37,11 @@
}
// Process the result
- $result = $result->map(function ($group) {
- $data = [
- 'id' => $group->id,
- 'email' => $group->email,
- 'name' => $group->name,
- ];
-
- $data = array_merge($data, self::groupStatuses($group));
- return $data;
- });
+ $result = $result->map(
+ function ($group) {
+ return $this->groupToClient($group);
+ }
+ );
$result = [
'list' => $result,
diff --git a/src/app/Http/Controllers/API/V4/Admin/UsersController.php b/src/app/Http/Controllers/API/V4/Admin/UsersController.php
--- a/src/app/Http/Controllers/API/V4/Admin/UsersController.php
+++ b/src/app/Http/Controllers/API/V4/Admin/UsersController.php
@@ -128,9 +128,7 @@
// Process the result
$result = $result->map(
function ($user) {
- $data = $user->toArray();
- $data = array_merge($data, self::userStatuses($user));
- return $data;
+ return $this->userToClient($user, true);
}
);
diff --git a/src/app/Http/Controllers/API/V4/DomainsController.php b/src/app/Http/Controllers/API/V4/DomainsController.php
--- a/src/app/Http/Controllers/API/V4/DomainsController.php
+++ b/src/app/Http/Controllers/API/V4/DomainsController.php
@@ -21,19 +21,17 @@
public function index()
{
$user = $this->guard()->user();
- $list = [];
- foreach ($user->domains() as $domain) {
- if (!$domain->isPublic()) {
- $data = $domain->toArray();
- $data = array_merge($data, self::domainStatuses($domain));
- $list[] = $data;
- }
- }
-
- usort($list, function ($a, $b) {
- return strcmp($a['namespace'], $b['namespace']);
- });
+ $list = \collect($user->domains())
+ ->filter(function ($domain) {
+ return !$domain->isPublic();
+ })
+ ->map(function ($domain) {
+ return $this->domainToClient($domain);
+ })
+ ->sortBy('namespace')
+ ->values()
+ ->all();
return response()->json($list);
}
@@ -252,7 +250,7 @@
return $this->errorResponse(403);
}
- $response = $domain->toArray();
+ $response = self::domainToClient($domain, true);
// Add hash information to the response
$response['hash_text'] = $domain->hash(Domain::HASH_TEXT);
@@ -272,8 +270,6 @@
// Entitlements info
$response['skus'] = \App\Entitlement::objectEntitlementsSummary($domain);
- $response = array_merge($response, self::domainStatuses($domain));
-
// Some basic information about the domain wallet
$wallet = $domain->wallet();
$response['wallet'] = $wallet->toArray();
@@ -431,6 +427,32 @@
];
}
+ /**
+ * Prepare a domain for the UI.
+ *
+ * @param \App\Domain $domain Domain object
+ * @param bool $full Include all domain properties
+ *
+ * @return array Domain info
+ */
+ protected static function domainToClient(Domain $domain, bool $full = false): array
+ {
+ if ($full) {
+ $result = $domain->toArray();
+ } else {
+ $result = [
+ 'id' => $domain->id,
+ 'namespace' => $domain->namespace,
+ 'status' => $domain->status,
+ 'type' => $domain->type,
+ ];
+ }
+
+ $result = array_merge($result, self::domainStatuses($domain));
+
+ return $result;
+ }
+
/**
* Domain status (extended) information.
*
diff --git a/src/app/Http/Controllers/API/V4/GroupsController.php b/src/app/Http/Controllers/API/V4/GroupsController.php
--- a/src/app/Http/Controllers/API/V4/GroupsController.php
+++ b/src/app/Http/Controllers/API/V4/GroupsController.php
@@ -75,15 +75,8 @@
$user = $this->guard()->user();
$result = $user->groups()->orderBy('name')->orderBy('email')->get()
- ->map(function (Group $group) {
- $data = [
- 'id' => $group->id,
- 'email' => $group->email,
- 'name' => $group->name,
- ];
-
- $data = array_merge($data, self::groupStatuses($group));
- return $data;
+ ->map(function ($group) {
+ return $this->groupToClient($group);
});
return response()->json($result);
@@ -139,9 +132,8 @@
return $this->errorResponse(403);
}
- $response = $group->toArray();
+ $response = self::groupToClient($group, true);
- $response = array_merge($response, self::groupStatuses($group));
$response['statusInfo'] = self::statusInfo($group);
// Group configuration, e.g. sender_policy
@@ -469,6 +461,32 @@
];
}
+ /**
+ * Convert a group object to an array for the UI.
+ *
+ * @param \App\Group $group Group object
+ * @param bool $full Add all group properties, e.g. members
+ *
+ * @return array Statuses array
+ */
+ public static function groupToClient(Group $group, bool $full = false): array
+ {
+ if ($full) {
+ $response = $group->toArray();
+ } else {
+ $response = [
+ 'id' => $group->id,
+ 'email' => $group->email,
+ 'name' => $group->name,
+ 'status' => $group->status,
+ ];
+ }
+
+ $response = array_merge($response, self::groupStatuses($group));
+
+ return $response;
+ }
+
/**
* Validate an email address for use as a group email
*
diff --git a/src/app/Http/Controllers/API/V4/Reseller/DomainsController.php b/src/app/Http/Controllers/API/V4/Reseller/DomainsController.php
--- a/src/app/Http/Controllers/API/V4/Reseller/DomainsController.php
+++ b/src/app/Http/Controllers/API/V4/Reseller/DomainsController.php
@@ -38,11 +38,11 @@
}
// Process the result
- $result = $result->map(function ($domain) {
- $data = $domain->toArray();
- $data = array_merge($data, self::domainStatuses($domain));
- return $data;
- });
+ $result = $result->map(
+ function ($domain) {
+ return $this->domainToClient($domain);
+ }
+ );
$result = [
'list' => $result,
diff --git a/src/app/Http/Controllers/API/V4/Reseller/GroupsController.php b/src/app/Http/Controllers/API/V4/Reseller/GroupsController.php
--- a/src/app/Http/Controllers/API/V4/Reseller/GroupsController.php
+++ b/src/app/Http/Controllers/API/V4/Reseller/GroupsController.php
@@ -36,16 +36,11 @@
}
// Process the result
- $result = $result->map(function ($group) {
- $data = [
- 'id' => $group->id,
- 'email' => $group->email,
- 'name' => $group->name,
- ];
-
- $data = array_merge($data, self::groupStatuses($group));
- return $data;
- });
+ $result = $result->map(
+ function ($group) {
+ return $this->groupToClient($group);
+ }
+ );
$result = [
'list' => $result,
diff --git a/src/app/Http/Controllers/API/V4/Reseller/UsersController.php b/src/app/Http/Controllers/API/V4/Reseller/UsersController.php
--- a/src/app/Http/Controllers/API/V4/Reseller/UsersController.php
+++ b/src/app/Http/Controllers/API/V4/Reseller/UsersController.php
@@ -91,11 +91,11 @@
}
// Process the result
- $result = $result->map(function ($user) {
- $data = $user->toArray();
- $data = array_merge($data, self::userStatuses($user));
- return $data;
- });
+ $result = $result->map(
+ function ($user) {
+ return $this->userToClient($user, true);
+ }
+ );
$result = [
'list' => $result,
diff --git a/src/app/Http/Controllers/API/V4/UsersController.php b/src/app/Http/Controllers/API/V4/UsersController.php
--- a/src/app/Http/Controllers/API/V4/UsersController.php
+++ b/src/app/Http/Controllers/API/V4/UsersController.php
@@ -114,9 +114,7 @@
// Process the result
$result = $result->map(
function ($user) {
- $data = $user->toArray();
- $data = array_merge($data, self::userStatuses($user));
- return $data;
+ return $this->userToClient($user);
}
);
@@ -521,7 +519,7 @@
*/
public static function userResponse(User $user): array
{
- $response = $user->toArray();
+ $response = self::userToClient($user, true);
// Settings
$response['settings'] = [];
@@ -538,8 +536,6 @@
// Status info
$response['statusInfo'] = self::statusInfo($user);
- $response = array_merge($response, self::userStatuses($user));
-
// Add more info to the wallet object output
$map_func = function ($wallet) use ($user) {
$result = $wallet->toArray();
@@ -585,6 +581,31 @@
];
}
+ /**
+ * 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
*

File Metadata

Mime Type
text/plain
Expires
Thu, Apr 2, 11:13 PM (3 d, 6 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18821437
Default Alt Text
D3038.1775171600.diff (10 KB)

Event Timeline