Skip to content

Commit f1e2109

Browse files
committed
just store operations as merged legacy and current version for impl simplicity
1 parent f5de9c1 commit f1e2109

File tree

4 files changed

+51
-166
lines changed

4 files changed

+51
-166
lines changed

packages/shared/src/models/Operation.ts

Lines changed: 34 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
// TODO: change all to_uid to to_member_id
22
import { MemberId, MemberUsername, OperationId } from "./identifiers";
33
import { VideoReference } from "./MediaReference";
4-
import { Omit } from "../helpers/Omit";
54

65
export enum OperationType {
76
CREATE_MEMBER = "CREATE_MEMBER",
@@ -22,6 +21,16 @@ export interface CreateMemberPayload {
2221
username: MemberUsername;
2322
videoReference: VideoReference;
2423
}
24+
// START [video-reference] legacy types
25+
export interface LegacyCreateMemberPayload {
26+
full_name: string;
27+
request_invite_from_member_id?: MemberId;
28+
username: MemberUsername;
29+
video_url: string;
30+
}
31+
export type LegacyCompatCreateMemberPayload = CreateMemberPayload &
32+
LegacyCreateMemberPayload;
33+
// END [video-reference] legacy types
2534

2635
export interface EditMemberPayload {
2736
full_name?: string;
@@ -44,12 +53,27 @@ export interface VerifyPayload {
4453
to_uid: MemberId;
4554
videoReference: VideoReference;
4655
}
56+
// START [video-reference] legacy types
57+
export interface LegacyVerifyPayload {
58+
to_uid: MemberId;
59+
video_url: string;
60+
}
61+
export type LegacyCompatVerifyPayload = VerifyPayload & LegacyVerifyPayload;
62+
// END [video-reference] legacy types
4763

4864
export interface InvitePayload {
4965
invite_token: string;
5066
is_joint_video: boolean;
5167
videoReference: VideoReference;
5268
}
69+
// START [video-reference] legacy types
70+
export interface LegacyInvitePayload {
71+
invite_token: string;
72+
is_joint_video: boolean;
73+
video_token: string;
74+
}
75+
export type LegacyCompatInvitePayload = InvitePayload & LegacyInvitePayload;
76+
// END [video-reference] legacy types
5377

5478
export interface TrustPayload {
5579
to_uid: MemberId;
@@ -90,7 +114,9 @@ export interface SavedOperationBase {
90114

91115
interface CreateMemberOperationMetadata {
92116
op_code: OperationType.CREATE_MEMBER;
93-
data: CreateMemberPayload;
117+
// TODO: [video-reference] legacy - once apps updated, use CreateMemberPayload
118+
// data: CreateMemberPayload;
119+
data: LegacyCompatCreateMemberPayload;
94120
}
95121

96122
export type CreateMemberOperation = SavedOperationBase &
@@ -136,7 +162,9 @@ export type RequestVerificationOperationToBeCreated = ToSaveOperationBase &
136162

137163
interface VerifyOperationMetadata {
138164
op_code: OperationType.VERIFY;
139-
data: VerifyPayload;
165+
// TODO: [video-reference] legacy - once apps updated, use VerifyPayload
166+
// data: VerifyPayload;
167+
data: LegacyCompatVerifyPayload;
140168
}
141169

142170
export type VerifyOperation = SavedOperationBase & VerifyOperationMetadata;
@@ -145,7 +173,9 @@ export type VerifyOperationToBeCreated = ToSaveOperationBase &
145173

146174
interface InviteOperationMetadata {
147175
op_code: OperationType.INVITE;
148-
data: InvitePayload;
176+
// TODO: [video-reference] legacy - once apps updated, use InvitePayload
177+
// data: InviteMemberPayload;
178+
data: LegacyCompatInvitePayload;
149179
}
150180
export type InviteOperation = SavedOperationBase & InviteOperationMetadata;
151181
export type InviteOperationToBeCreated = ToSaveOperationBase &
@@ -198,70 +228,3 @@ export type OperationToBeCreated =
198228
| TrustOperationToBeCreated
199229
| MintOperationToBeCreated
200230
| GiveOperationToBeCreated;
201-
202-
// LEGACY TYPES START---------------------
203-
// TODO: remove legacy types
204-
// missing videoReference means video location is inferred from member ID
205-
export type LegacyCreateMemberPayload = Omit<
206-
CreateMemberPayload,
207-
"videoReference"
208-
>;
209-
interface LegacyCreateMemberOperationMetadata
210-
extends Omit<CreateMemberOperationMetadata, "data"> {
211-
data: LegacyCreateMemberPayload;
212-
}
213-
export type LegacyCreateMemberOperation = SavedOperationBase &
214-
LegacyCreateMemberOperationMetadata;
215-
export type LegacyCreateMemberOperationToBeCreated = ToSaveOperationBase &
216-
LegacyCreateMemberOperationMetadata;
217-
218-
// Presence of video_url instead of videoReference indicates legacy request
219-
export interface LegacyVerifyPayload
220-
extends Omit<VerifyPayload, "videoReference"> {
221-
video_url: string;
222-
}
223-
export interface LegacyVerifyOperationMetadata
224-
extends Omit<VerifyOperationMetadata, "data"> {
225-
data: LegacyVerifyPayload;
226-
}
227-
export type LegacyVerifyOperation = SavedOperationBase &
228-
LegacyVerifyOperationMetadata;
229-
export type LegacyVerifyOperationToBeCreated = ToSaveOperationBase &
230-
LegacyVerifyOperationMetadata;
231-
232-
export interface LegacyInvitePayload
233-
extends Omit<InvitePayload, "videoReference"> {
234-
video_token: string;
235-
}
236-
export interface LegacyInviteOperationMetadata
237-
extends Omit<InviteOperationMetadata, "data"> {
238-
data: LegacyInvitePayload;
239-
}
240-
export type LegacyInviteOperation = SavedOperationBase &
241-
LegacyInviteOperationMetadata;
242-
export type LegacyInviteOperationToBeCreated = ToSaveOperationBase &
243-
LegacyInviteOperationMetadata;
244-
245-
export type LegacyOperation =
246-
| LegacyCreateMemberOperation
247-
| LegacyVerifyOperation
248-
| LegacyInviteOperation
249-
| EditMemberOperation
250-
| FlagMemberOperation
251-
| ResolveFlagMemberOperation
252-
| RequestVerificationOperation
253-
| TrustOperation
254-
| MintOperation
255-
| GiveOperation;
256-
export type LegacyOperationToBeCreated =
257-
| LegacyCreateMemberOperationToBeCreated
258-
| LegacyVerifyOperationToBeCreated
259-
| LegacyInviteOperationToBeCreated
260-
| EditMemberOperationToBeCreated
261-
| FlagMemberOperationToBeCreated
262-
| ResolveFlagMemberOperationToBeCreated
263-
| RequestVerificationOperationToBeCreated
264-
| TrustOperationToBeCreated
265-
| MintOperationToBeCreated
266-
| GiveOperationToBeCreated;
267-
// LEGACY TYPES END---------------------

packages/shared/src/routes/ApiEndpoint/ApiResponse.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Operation, LegacyOperation } from "../../models/Operation";
1+
import { Operation } from "../../models/Operation";
22
import { HttpStatusCode } from "../../helpers/http";
33
import { ApiEndpoint } from ".";
44
import { PublicMemberFields } from "../../models/Member";
@@ -16,8 +16,3 @@ export interface ApiResponseDefinition<Status extends HttpStatusCode, Body> {
1616
}
1717

1818
export type ApiResponse = ApiEndpoint["response"];
19-
20-
// START LEGACY TYPES------------
21-
export type LegacyOperationApiResponseBody = LegacyOperation;
22-
export type LegacyOperationsApiResponseBody = LegacyOperation[];
23-
// END LEGACY TYPES------------

packages/shared/src/routes/me/definitions.ts

Lines changed: 7 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {
1010
OperationApiResponseBody,
1111
MessageApiResponseBody
1212
} from "../ApiEndpoint/ApiResponse";
13-
import { ApiLocationDefinition, ApiCall } from "../ApiEndpoint/ApiCall";
13+
import { ApiLocationDefinition } from "../ApiEndpoint/ApiCall";
1414
import { MintPayload, EditMemberPayload } from "../../models/Operation";
1515
import { VideoReference } from "../../models/MediaReference";
1616

@@ -70,32 +70,12 @@ export type SendInviteApiResponse = ApiResponseDefinition<
7070
201,
7171
MessageApiResponseBody
7272
>;
73-
// START LEGACY TYPES---------------
74-
export interface LegacySendInviteApiBody {
75-
inviteEmail: string;
76-
isJointVideo: boolean;
77-
videoToken: string;
78-
}
79-
export type LegacySendInviteApiCall = ApiCallDefinition<
80-
SendInviteApiLocation["uri"],
81-
SendInviteApiLocation["method"],
82-
SendInviteApiLocation["authenticated"],
83-
void,
84-
LegacySendInviteApiBody
85-
>;
86-
// END LEGACY TYPES---------------
87-
// TODO: remove legacy api endpoint definition from below
88-
export type SendInviteApiEndpoint =
89-
| ApiEndpointDefinition<
90-
ApiEndpointName.SEND_INVITE,
91-
SendInviteApiCall,
92-
SendInviteApiResponse
93-
>
94-
| ApiEndpointDefinition<
95-
ApiEndpointName.SEND_INVITE,
96-
LegacySendInviteApiCall,
97-
SendInviteApiResponse
98-
>;
73+
74+
export type SendInviteApiEndpoint = ApiEndpointDefinition<
75+
ApiEndpointName.SEND_INVITE,
76+
SendInviteApiCall,
77+
SendInviteApiResponse
78+
>;
9979

10080
/*
10181
* TODO: find a better way to narrow the types precisely than this repetitive type declaration

packages/shared/src/routes/members/definitions.ts

Lines changed: 9 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,7 @@ import {
99
import {
1010
OperationApiResponseBody,
1111
OperationsApiResponseBody,
12-
MembersApiResponseBody,
13-
LegacyOperationApiResponseBody,
14-
LegacyOperationsApiResponseBody
12+
MembersApiResponseBody
1513
} from "../ApiEndpoint/ApiResponse";
1614
import { HttpVerb } from "../../helpers/http";
1715
import { ApiLocationDefinition } from "../ApiEndpoint/ApiCall";
@@ -139,39 +137,11 @@ export type CreateMemberApiResponse = ApiResponseDefinition<
139137
OperationsApiResponseBody
140138
>;
141139

142-
// START LEGACY TYPES-------------
143-
export interface LegacyCreateMemberApiCallBody {
144-
fullName: string;
145-
emailAddress: string;
146-
username: string;
147-
inviteToken?: string;
148-
subscribeToNewsletter?: boolean;
149-
videoToken: string;
150-
}
151-
export type LegacyCreateMemberApiCall = ApiCallDefinition<
152-
CreateMemberApiLocation["uri"],
153-
CreateMemberApiLocation["method"],
154-
CreateMemberApiLocation["authenticated"],
155-
void,
156-
LegacyCreateMemberApiCallBody
157-
>;
158-
export type LegacyCreateMemberApiResponse = ApiResponseDefinition<
159-
201,
160-
LegacyOperationsApiResponseBody
140+
export type CreateMemberApiEndpoint = ApiEndpointDefinition<
141+
ApiEndpointName.CREATE_MEMBER,
142+
CreateMemberApiCall,
143+
CreateMemberApiResponse
161144
>;
162-
// END LEGACY TYPES-------------
163-
// TODO: remove legacy endpoint definition below
164-
export type CreateMemberApiEndpoint =
165-
| ApiEndpointDefinition<
166-
ApiEndpointName.CREATE_MEMBER,
167-
CreateMemberApiCall,
168-
CreateMemberApiResponse
169-
>
170-
| ApiEndpointDefinition<
171-
ApiEndpointName.CREATE_MEMBER,
172-
LegacyCreateMemberApiCall,
173-
LegacyCreateMemberApiResponse
174-
>;
175145

176146
export type VerifyMemberApiLocation = ApiLocationDefinition<
177147
ApiEndpointUri.VERIFY_MEMBER,
@@ -197,34 +167,11 @@ export type VerifyMemberApiResponse = ApiResponseDefinition<
197167
201,
198168
OperationApiResponseBody
199169
>;
200-
// START LEGACY TYPES-------------
201-
export type LegacyVerifyMemberApiCall = ApiCallDefinition<
202-
VerifyMemberApiLocation["uri"],
203-
VerifyMemberApiLocation["method"],
204-
VerifyMemberApiLocation["authenticated"],
205-
{ memberId: MemberId },
206-
LegacyVerifyMemberApiCallBody
207-
>;
208-
export type LegacyVerifyMemberApiResponse = ApiResponseDefinition<
209-
201,
210-
LegacyOperationApiResponseBody
170+
export type VerifyMemberApiEndpoint = ApiEndpointDefinition<
171+
ApiEndpointName.CREATE_MEMBER,
172+
VerifyMemberApiCall,
173+
VerifyMemberApiResponse
211174
>;
212-
export interface LegacyVerifyMemberApiCallBody {
213-
videoToken: string;
214-
}
215-
// END LEGACY TYPES-----------
216-
// TODO: remove legacy api definition below
217-
export type VerifyMemberApiEndpoint =
218-
| ApiEndpointDefinition<
219-
ApiEndpointName.CREATE_MEMBER,
220-
VerifyMemberApiCall,
221-
VerifyMemberApiResponse
222-
>
223-
| ApiEndpointDefinition<
224-
ApiEndpointName.CREATE_MEMBER,
225-
LegacyVerifyMemberApiCall,
226-
LegacyVerifyMemberApiResponse
227-
>;
228175

229176
export type FlagMemberApiLocation = ApiLocationDefinition<
230177
ApiEndpointUri.FLAG_MEMBER,

0 commit comments

Comments
 (0)