Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F117745464
D3038.1775171600.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Authored By
Unknown
Size
10 KB
Referenced Files
None
Subscribers
None
D3038.1775171600.diff
View Options
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
Details
Attached
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)
Attached To
Mode
D3038: Code de-duplication, API unification
Attached
Detach File
Event Timeline