From 7848046322e4a4c674cf5ac1da8de8d1b586c142 Mon Sep 17 00:00:00 2001 From: gevorgmansuryan Date: Tue, 23 Jul 2024 01:33:51 +0400 Subject: [PATCH 1/6] Endpoint for pending invites --- controllers/user/InviteController.php | 4 +++- definitions/InviteDefinitions.php | 13 +++++++++++++ models/Invite.php | 25 +++++++++++++++++++++++++ 3 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 models/Invite.php diff --git a/controllers/user/InviteController.php b/controllers/user/InviteController.php index 89509a5..c8e2a2e 100644 --- a/controllers/user/InviteController.php +++ b/controllers/user/InviteController.php @@ -57,7 +57,9 @@ public function actionIndex() public function actionList() { - $query = Invite::find()->where(['source' => Invite::SOURCE_INVITE]); + $query = Invite::find() + ->where(['source' => Invite::SOURCE_INVITE]) + ->with(['space', 'originator', 'createdBy', 'updatedBy']); $pagination = $this->handlePagination($query, 10); diff --git a/definitions/InviteDefinitions.php b/definitions/InviteDefinitions.php index a048c11..bf673c5 100644 --- a/definitions/InviteDefinitions.php +++ b/definitions/InviteDefinitions.php @@ -6,11 +6,24 @@ class InviteDefinitions { + /** + * @param Invite|\humhub\modules\rest\models\Invite $invite + * @return array + */ public static function getInvite(Invite $invite) { return [ 'id' => $invite->id, 'email' => $invite->email, + 'firstname' => $invite->firstname, + 'lastname' => $invite->lastname, + 'language' => $invite->language, + 'space' => $invite->space ? SpaceDefinitions::getSpaceShort($invite->space) : null, + 'originator' => $invite->originator ? UserDefinitions::getUserShort($invite->originator) : null, + 'createdBy' => $invite->createdBy ? UserDefinitions::getUserShort($invite->createdBy) : null, + 'updatedBy' => $invite->updatedBy ? UserDefinitions::getUserShort($invite->updatedBy) : null, + 'createdAt' => $invite->created_at, + 'updatedAt' => $invite->updated_at, ]; } } diff --git a/models/Invite.php b/models/Invite.php new file mode 100644 index 0000000..0af7662 --- /dev/null +++ b/models/Invite.php @@ -0,0 +1,25 @@ +hasOne(User::class, ['id' => 'created_by']); + } + + public function getUpdatedBy() + { + return $this->hasOne(User::class, ['id' => 'updated_by']); + } +} \ No newline at end of file From cbb92e5a70170f685a4dd66992f81ba6ba4803ad Mon Sep 17 00:00:00 2001 From: gevorgmansuryan Date: Tue, 23 Jul 2024 01:35:36 +0400 Subject: [PATCH 2/6] Endpoint for pending invites --- models/Invite.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/Invite.php b/models/Invite.php index 0af7662..6cdaa08 100644 --- a/models/Invite.php +++ b/models/Invite.php @@ -22,4 +22,4 @@ public function getUpdatedBy() { return $this->hasOne(User::class, ['id' => 'updated_by']); } -} \ No newline at end of file +} From 8114bfc546df46773da9d7c2ee477a3d6e503c3c Mon Sep 17 00:00:00 2001 From: gevorgmansuryan Date: Thu, 25 Jul 2024 02:59:10 +0400 Subject: [PATCH 3/6] Endpoint for pending invites - Extended response --- definitions/InviteDefinitions.php | 6 +----- docs/CHANGELOG.md | 1 + docs/html/user.html | 4 ++-- docs/swagger/user.yaml | 32 +++++++++++++++++++++++++++++++ models/Invite.php | 25 ------------------------ module.json | 2 +- 6 files changed, 37 insertions(+), 33 deletions(-) delete mode 100644 models/Invite.php diff --git a/definitions/InviteDefinitions.php b/definitions/InviteDefinitions.php index bf673c5..fdae824 100644 --- a/definitions/InviteDefinitions.php +++ b/definitions/InviteDefinitions.php @@ -6,11 +6,7 @@ class InviteDefinitions { - /** - * @param Invite|\humhub\modules\rest\models\Invite $invite - * @return array - */ - public static function getInvite(Invite $invite) + public static function getInvite(Invite $invite): array { return [ 'id' => $invite->id, diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 30dbb64..cbff197 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -6,6 +6,7 @@ Changelog - Enh #155: Add `requirements.php` - Fix #164: Disable `mustChangePassword` check for impersonated access tokens - Enh #170: Added new endpoint `GET /user/invite` for user pending invites +- Enh #171: Extended invite information in response of `GET /user/invite` endpoint 0.9.3 (December 8, 2023) ------------------------ diff --git a/docs/html/user.html b/docs/html/user.html index 8fc97c5..40fa5a2 100644 --- a/docs/html/user.html +++ b/docs/html/user.html @@ -472,14 +472,14 @@

Responses

Request samples

Content type
application/json
{
  • "emails": [
    ]
}

Pending invites

Returns list of pending invites

Responses

Response samples

Content type
{
  • "total": 76,
  • "page": 1,
  • "results": [
    ]
}

Session

User sessions

+

Response samples

Content type
{
  • "total": 76,
  • "page": 1,
  • "results": [
    ]
}

Session

User sessions

Deletes all sessions for a particular user

path Parameters
id
required
integer

The id of user

Responses