Skip to content

Commit ce46755

Browse files
feat(certif): update membership lastAccessedAt on current_user and adapter
1 parent 36bc05a commit ce46755

File tree

3 files changed

+38
-1
lines changed

3 files changed

+38
-1
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import ApplicationAdapter from './application';
2+
3+
export default class CertificationCenterMembershipAdapter extends ApplicationAdapter {
4+
namespace = "api/certification-centers";
5+
6+
updateRecord(store, type, snapshot) {
7+
const { adapterOptions } = snapshot;
8+
9+
console.log("updateRecord override");
10+
if (adapterOptions && adapterOptions.updateLastAccessedAt) {
11+
console.log("Special adapterOptions");
12+
const url = `${this.host}/${this.namespace}/${adapterOptions.certificationCenterId}/certification-center-memberships/me`;
13+
14+
delete adapterOptions.updateLastAccessedAt;
15+
16+
return this.ajax(url, 'PATCH');
17+
}
18+
19+
return super.updateRecord(...arguments);
20+
}
21+
}

certif/app/services/current-user.js

+10-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ export default class CurrentUserService extends Service {
2323
this.currentCertificationCenterMembership = this._findCertificationCenterMembershipByCertificationCenterId(
2424
this.currentAllowedCertificationCenterAccess?.id,
2525
);
26-
26+
this._updateCurrentUserAccessToCertificationCenter();
2727
this.isAdminOfCurrentCertificationCenter = this.currentCertificationCenterMembership?.isAdmin;
2828
} catch (error) {
2929
this.certificationPointOfContact = null;
@@ -55,6 +55,7 @@ export default class CurrentUserService extends Service {
5555
this.currentCertificationCenterMembership =
5656
this._findCertificationCenterMembershipByCertificationCenterId(certificationCenterId);
5757
this.isAdminOfCurrentCertificationCenter = this.currentCertificationCenterMembership?.isAdmin;
58+
this._updateCurrentUserAccessToCertificationCenter();
5859
}
5960
}
6061

@@ -63,4 +64,12 @@ export default class CurrentUserService extends Service {
6364
({ certificationCenterId: id }) => id === Number(certificationCenterId),
6465
);
6566
}
67+
68+
_updateCurrentUserAccessToCertificationCenter(){
69+
if (this.currentCertificationCenterMembership) {
70+
this.currentCertificationCenterMembership.save({
71+
adapterOptions: { updateLastAccessedAt: true, certificationCenterId: this.currentCertificationCenterMembership.certificationCenterId },
72+
})
73+
}
74+
}
6675
}

certif/mirage/config.js

+7
Original file line numberDiff line numberDiff line change
@@ -432,6 +432,13 @@ function _configureCertificationCenterInvitationRoutes(context) {
432432
return certificationCenterInvitation;
433433
});
434434

435+
context.patch(
436+
'/certification-centers/:certificationCenterId/certification-center-memberships/me',
437+
() => {
438+
return new Response(204);
439+
},
440+
);
441+
435442
context.post(`${basePath}/:id/accept`, (schema) => {
436443
const certificationPointOfContact = schema.certificationPointOfContacts.first();
437444
const allowedCertificationCenterAccess = schema.allowedCertificationCenterAccesses.create({

0 commit comments

Comments
 (0)