Skip to content

Commit 1f9e92f

Browse files
authored
Remove old email handling (#175)
* Remove unused email lookup * Remove old email edit handling that was never fully implemented
1 parent 20da925 commit 1f9e92f

File tree

10 files changed

+0
-103
lines changed

10 files changed

+0
-103
lines changed

src/commands/members/edit-email.ts

Lines changed: 0 additions & 36 deletions
This file was deleted.

src/commands/members/index.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import {editEmail} from './edit-email';
21
import {editName} from './edit-name';
32
import {editNameForm} from './edit-name-form';
43
import {editFormOfAddress} from './edit-form-of-address';
@@ -11,9 +10,6 @@ export const members = {
1110
...editName,
1211
...editNameForm,
1312
},
14-
editEmail: {
15-
...editEmail,
16-
},
1713
editFormOfAddress: {
1814
...editFormOfAddress,
1915
...editFormOfAddressForm,

src/read-models/members/return-types.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ export type Member = {
1010
trainedOn: ReadonlyArray<TrainedOn>;
1111
memberNumber: number;
1212
emailAddress: EmailAddress;
13-
prevEmails: ReadonlyArray<EmailAddress>;
1413
name: O.Option<string>;
1514
formOfAddress: O.Option<string>;
1615
agreementSigned: O.Option<Date>;

src/read-models/shared-state/member/merge.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,6 @@ export const mergeMemberCore = (
4848
RA.filter(m => m !== memberNumber)
4949
),
5050
emailAddress,
51-
prevEmails: records
52-
.flatMap(e => [...e.prevEmails, e.emailAddress])
53-
.filter(e => e !== emailAddress),
5451
name: records[0].name,
5552
formOfAddress: records[0].formOfAddress,
5653
agreementSigned: records[0].agreementSigned,

src/read-models/shared-state/return-types.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ export type MemberCoreInfo = {
5656
memberNumber: number;
5757
pastMemberNumbers: ReadonlyArray<number>;
5858
emailAddress: EmailAddress;
59-
prevEmails: ReadonlyArray<EmailAddress>;
6059
name: O.Option<string>;
6160
formOfAddress: O.Option<string>;
6261
agreementSigned: O.Option<Date>;

src/read-models/shared-state/state.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,6 @@ export const membersTable = sqliteTable('members', {
1010
formOfAddress: blob('formOfAddress', {mode: 'json'})
1111
.notNull()
1212
.$type<O.Option<string>>(),
13-
prevEmails: blob('prevEmails', {mode: 'json'})
14-
.notNull()
15-
.$type<ReadonlyArray<EmailAddress>>(),
1613
isSuperUser: integer('isSuperUser', {mode: 'boolean'}).notNull(),
1714
superUserSince: integer('superUserSince', {mode: 'timestamp_ms'}),
1815
agreementSigned: integer('agreementSigned', {mode: 'timestamp_ms'}),
@@ -27,7 +24,6 @@ const createMembersTable = sql`
2724
gravatarHash TEXT,
2825
name BLOB,
2926
formOfAddress BLOB,
30-
prevEmails BLOB,
3127
isSuperUser INTEGER,
3228
superUserSince INTEGER,
3329
agreementSigned INTEGER,

src/read-models/shared-state/update-state.ts

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ export const updateState =
3737
gravatarHash: gravatarHashFromEmail(event.email),
3838
name: O.fromNullable(event.name),
3939
formOfAddress: O.fromNullable(event.formOfAddress),
40-
prevEmails: [],
4140
isSuperUser: false,
4241
agreementSigned: undefined,
4342
superUserSince: undefined,
@@ -60,24 +59,6 @@ export const updateState =
6059
.run();
6160
}
6261
break;
63-
case 'MemberEmailChanged': {
64-
const current = db
65-
.select()
66-
.from(membersTable)
67-
.where(eq(membersTable.memberNumber, event.memberNumber))
68-
.get();
69-
if (current) {
70-
db.update(membersTable)
71-
.set({
72-
emailAddress: event.newEmail,
73-
prevEmails: [...current.prevEmails, current.emailAddress],
74-
gravatarHash: gravatarHashFromEmail(event.newEmail),
75-
})
76-
.where(eq(membersTable.memberNumber, event.memberNumber))
77-
.run();
78-
}
79-
break;
80-
}
8162
case 'SuperUserDeclared':
8263
db.update(membersTable)
8364
.set({isSuperUser: true, superUserSince: event.recordedAt})

src/types/domain-event.ts

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -163,11 +163,6 @@ const RevokeTrainedOnEquipment = defineEvent('RevokeTrainedOnEquipment', {
163163
revokedByMemberNumber: t.union([t.number, t.null]), // Null to indicate system.
164164
});
165165

166-
const MemberEmailChanged = defineEvent('MemberEmailChanged', {
167-
memberNumber: t.number,
168-
newEmail: EmailAddressCodec,
169-
});
170-
171166
const RecurlySubscriptionUpdated = defineEvent('RecurlySubscriptionUpdated', {
172167
email: EmailAddressCodec,
173168
hasActiveSubscription: t.boolean,
@@ -218,7 +213,6 @@ export const events = [
218213
MemberTrainedOnEquipment,
219214
MemberTrainedOnEquipmentBy,
220215
RevokeTrainedOnEquipment,
221-
MemberEmailChanged,
222216
EquipmentTrainingQuizMemberNumberUpdated,
223217
EquipmentTrainingQuizEmailUpdated,
224218
TroubleTicketResponseSubmitted,
@@ -249,7 +243,6 @@ export const DomainEvent = t.union([
249243
MemberTrainedOnEquipment.codec,
250244
MemberTrainedOnEquipmentBy.codec,
251245
RevokeTrainedOnEquipment.codec,
252-
MemberEmailChanged.codec,
253246
EquipmentTrainingQuizMemberNumberUpdated.codec,
254247
EquipmentTrainingQuizEmailUpdated.codec,
255248
TroubleTicketResponseSubmitted.codec,

tests/read-models/shared-state/get-member.test.ts

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -283,33 +283,6 @@ describe('get-via-shared-read-model', () => {
283283
});
284284
});
285285

286-
describe('and their email has changed', () => {
287-
beforeEach(async () => {
288-
await framework.commands.members.editEmail({
289-
memberNumber,
290-
email: 'updated@example.com' as EmailAddress,
291-
});
292-
});
293-
294-
it('returns the latest email', () => {
295-
const result = runQuery();
296-
expect(result.emailAddress).toBe('updated@example.com');
297-
});
298-
299-
it('returns a record of previous emails', () => {
300-
const result = runQuery();
301-
expect(result.prevEmails).toHaveLength(1);
302-
expect(result.prevEmails[0]).toStrictEqual('foo@example.com');
303-
});
304-
305-
it('returns gravatar hash based on latest email', () => {
306-
const result = runQuery();
307-
expect(result.gravatarHash).toStrictEqual(
308-
gravatarHashFromEmail('updated@example.com')
309-
);
310-
});
311-
});
312-
313286
describe('and they have been declared a super user', () => {
314287
const firstMadeSuperUserAt = faker.date.anytime();
315288
const superUserRevokedAt = faker.date.future({

tests/read-models/test-framework.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,6 @@ export const initTestFramework = async (): Promise<TestFramework> => {
151151
editName: frameworkify(commands.members.editName),
152152
editFormOfAddress: frameworkify(commands.members.editFormOfAddress),
153153
signOwnerAgreement: frameworkify(commands.members.signOwnerAgreement),
154-
editEmail: frameworkify(commands.members.editEmail),
155154
},
156155
memberNumbers: {
157156
linkNumberToEmail: frameworkify(

0 commit comments

Comments
 (0)