Skip to content

Commit 65982bf

Browse files
feat(api): add lastApplicationConnections to UserDetailsForAdmin serializer
Co-authored-by: P-Jeremy <jemyplu@gmail.com> Co-authored-by: LEGO Technix <109212476+lego-technix@users.noreply.github.com>
1 parent 54575b8 commit 65982bf

File tree

3 files changed

+35
-0
lines changed

3 files changed

+35
-0
lines changed

api/src/identity-access-management/infrastructure/serializers/jsonapi/user-details-for-admin.serializer.js

+6
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ const serialize = function (usersDetailsForAdmin) {
3434
'anonymisedByFullName',
3535
'organizationLearners',
3636
'authenticationMethods',
37+
'lastApplicationConnections',
3738
'profile',
3839
'participations',
3940
'organizationMemberships',
@@ -63,6 +64,11 @@ const serialize = function (usersDetailsForAdmin) {
6364
includes: true,
6465
attributes: ['identityProvider', 'authenticationComplement', 'lastLoggedAt'],
6566
},
67+
lastApplicationConnections: {
68+
ref: 'id',
69+
includes: true,
70+
attributes: ['application', 'lastLoggedAt'],
71+
},
6672
userLogin: {
6773
ref: 'id',
6874
includes: true,

api/tests/identity-access-management/acceptance/application/user/user.admin.route.test.js

+3
Original file line numberDiff line numberDiff line change
@@ -322,6 +322,9 @@ describe('Acceptance | Identity Access Management | Application | Route | Admin
322322
related: `/api/admin/users/${user.id}/participations`,
323323
},
324324
},
325+
'last-application-connections': {
326+
data: [],
327+
},
325328
});
326329
expect(response.result.included).to.deep.equal([
327330
{

api/tests/identity-access-management/unit/infrastructure/serializers/jsonapi/user-details-for-admin.serializer.test.js

+26
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { LastUserApplicationConnection } from '../../../../../../src/identity-access-management/domain/models/LastUserApplicationConnection.js';
12
import * as serializer from '../../../../../../src/identity-access-management/infrastructure/serializers/jsonapi/user-details-for-admin.serializer.js';
23
import { domainBuilder, expect } from '../../../../../test-helper.js';
34

@@ -7,6 +8,7 @@ describe('Unit | Serializer | JSONAPI | user-details-for-admin-serializer', func
78
// given
89
const now = new Date();
910
const userDetailsForAdmin = domainBuilder.buildUserDetailsForAdmin({
11+
id: 123,
1012
createdAt: now,
1113
lang: 'fr',
1214
locale: 'fr-FR',
@@ -27,6 +29,14 @@ describe('Unit | Serializer | JSONAPI | user-details-for-admin-serializer', func
2729
},
2830
],
2931
userLogin: [{ id: 123, failureCount: 8 }],
32+
lastApplicationConnections: [
33+
new LastUserApplicationConnection({
34+
id: 456,
35+
application: 'orga',
36+
userId: 123,
37+
lastLoggedAt: new Date(),
38+
}),
39+
],
3040
});
3141

3242
// when
@@ -78,6 +88,14 @@ describe('Unit | Serializer | JSONAPI | user-details-for-admin-serializer', func
7888
},
7989
],
8090
},
91+
'last-application-connections': {
92+
data: [
93+
{
94+
id: '456',
95+
type: 'lastApplicationConnections',
96+
},
97+
],
98+
},
8199
profile: {
82100
links: {
83101
related: `/api/admin/users/${userDetailsForAdmin.id}/profile`,
@@ -132,6 +150,14 @@ describe('Unit | Serializer | JSONAPI | user-details-for-admin-serializer', func
132150
id: `${userDetailsForAdmin.authenticationMethods[0].id}`,
133151
type: 'authenticationMethods',
134152
},
153+
{
154+
attributes: {
155+
application: 'orga',
156+
'last-logged-at': userDetailsForAdmin.lastApplicationConnections[0].lastLoggedAt,
157+
},
158+
id: '456',
159+
type: 'lastApplicationConnections',
160+
},
135161
{
136162
attributes: { 'failure-count': 8 },
137163
id: '123',

0 commit comments

Comments
 (0)