Skip to content

Commit 0696070

Browse files
committed
feat: merge conflict resolution
2 parents 9fcbba3 + e460a83 commit 0696070

File tree

5 files changed

+221
-42
lines changed

5 files changed

+221
-42
lines changed

Containers/generate.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
const fs = require('fs');
22
const { exec } = require('child_process');
33

4-
// Generate the base TypeScript file from OpenAPI
5-
exec('npx openapi-typescript /app/api.json -o /app/models.ts', (error, stdout, stderr) => {
4+
// Generate the base TypeScript file from OpenAPI using the --enum flag
5+
exec('npx openapi-typescript /app/api.json -o /app/models.ts --enum', (error, stdout, stderr) => {
66
if (error) {
77
console.error('Error generating TypeScript types:', error);
88
console.error(stderr);

model/equaliq.smithy

Lines changed: 83 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,24 @@ service EqualIQ {
2222
UploadProfilePicture
2323
UpdateProfile
2424
Ping
25+
ExposeTypes
2526
SignContract
2627
GetContractSignatures
2728
UpdateSignatureStatus
2829
DeleteContractSignature
2930
]
31+
32+
}
33+
34+
// When changing APIs, we sometimes want to expose unified types that aren't directly tied to any API.
35+
structure ExposedTypes {
36+
QASectionsList: QASectionsList
37+
}
38+
39+
// This API is used simply to expose types
40+
@http(method: "POST", uri: "/notARealEndpoint")
41+
operation ExposeTypes {
42+
output: ExposedTypes
3043
}
3144

3245
// Types
@@ -60,6 +73,18 @@ enum AccountType {
6073
MANAGER = "manager"
6174
LAWYER = "lawyer"
6275
PRODUCER = "producer"
76+
PUBLISHER = "publisher"
77+
}
78+
79+
enum SignatureStatus {
80+
SIGNED = "signed"
81+
DECLINED = "declined"
82+
PENDING = "pending"
83+
}
84+
85+
enum SignContractResult {
86+
SUCCESS
87+
FAILURE
6388
}
6489

6590
enum SignatureStatus {
@@ -102,10 +127,10 @@ structure GetContractOutput {
102127
type: ContractType
103128

104129
@required
105-
terms: Document
130+
terms: TermsList
106131

107132
@required
108-
iq_qa: QASections
133+
qa_sections: String
109134

110135
@required
111136
isOwner: Boolean
@@ -117,31 +142,26 @@ structure GetContractOutput {
117142
sharedWith: UserIdList
118143
}
119144

120-
structure QASections {
121-
@required
122-
sections: SectionList
123-
}
124-
125-
list SectionList {
145+
list QASectionsList {
126146
member: QASection
127147
}
128148

129149
structure QASection {
130150
@required
131-
title: String
132-
151+
section: String
152+
133153
@required
134-
questions: QuestionList
154+
qa: QAList
135155
}
136156

137-
list QuestionList {
138-
member: Question
157+
list QAList {
158+
member: QA
139159
}
140160

141-
structure Question {
161+
structure QA {
142162
@required
143163
question: String
144-
164+
145165
@required
146166
answer: String
147167
}
@@ -490,6 +510,54 @@ structure PingOutput {
490510
message: String
491511
}
492512

513+
// Contract Terms structures
514+
list TermsList {
515+
member: Term
516+
}
517+
518+
structure Term {
519+
@required
520+
name: String
521+
522+
@required
523+
definition: String
524+
525+
@required
526+
unitType: String
527+
528+
citation: String
529+
530+
fixedValues: FixedValueTermInference
531+
532+
// Additional properties will be serialized as part of the Document
533+
}
534+
535+
structure FixedValueTermInference {
536+
@required
537+
primary: FixedTermValue
538+
539+
subterms: FixedTermValueList
540+
}
541+
542+
list FixedTermValueList {
543+
member: FixedTermValue
544+
}
545+
546+
structure FixedTermValue {
547+
@required
548+
unit: String
549+
550+
@required
551+
value: String
552+
553+
name: String
554+
555+
numericValue: Float
556+
557+
condition: String
558+
}
559+
560+
493561
// Common structures
494562
document Document
495563

python/api_model/types/models.py

Lines changed: 43 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ class AccountType(Enum):
1515
manager = 'manager'
1616
lawyer = 'lawyer'
1717
producer = 'producer'
18+
publisher = 'publisher'
1819

1920

2021
class AuthenticationErrorResponseContent(BaseModel):
@@ -52,6 +53,19 @@ class DeleteContractResponseContent(BaseModel):
5253
success: bool
5354

5455

56+
class FixedTermValue(BaseModel):
57+
unit: str
58+
value: str
59+
name: Optional[str] = None
60+
numericValue: Optional[float] = None
61+
condition: Optional[str] = None
62+
63+
64+
class FixedValueTermInference(BaseModel):
65+
primary: FixedTermValue
66+
subterms: Optional[List[FixedTermValue]] = None
67+
68+
5569
class DeleteContractSignatureRequestContent(BaseModel):
5670
contractId: str
5771

@@ -105,11 +119,16 @@ class ProcessingIncompleteErrorResponseContent(BaseModel):
105119
message: str
106120

107121

108-
class Question(BaseModel):
122+
class QA(BaseModel):
109123
question: str
110124
answer: str
111125

112126

127+
class QASection(BaseModel):
128+
section: str
129+
qa: List[QA]
130+
131+
113132
class ResourceNotFoundErrorResponseContent(BaseModel):
114133
message: str
115134

@@ -126,6 +145,14 @@ class SharedUserDetails(BaseModel):
126145
sharedTime: float
127146

128147

148+
class Term(BaseModel):
149+
name: str
150+
definition: str
151+
unitType: str
152+
citation: Optional[str] = None
153+
fixedValues: Optional[FixedValueTermInference] = None
154+
155+
129156
class SignContractResult(Enum):
130157
SUCCESS = 'SUCCESS'
131158
FAILURE = 'FAILURE'
@@ -215,6 +242,21 @@ class ContractSummaryItem(BaseModel):
215242
sharedEmails: Optional[List[str]] = None
216243

217244

245+
class ExposeTypesResponseContent(BaseModel):
246+
QASectionsList: Optional[List[QASection]] = None
247+
248+
249+
class GetContractResponseContent(BaseModel):
250+
contractId: str = Field(..., pattern='^[A-Za-z0-9-]+$')
251+
name: str
252+
type: ContractType
253+
terms: List[Term]
254+
qa_sections: str
255+
isOwner: bool
256+
ownerId: str = Field(..., pattern='^[A-Za-z0-9-]+$')
257+
sharedWith: List[SharedWithItem]
258+
259+
218260
class DeleteContractSignatureResponseContent(BaseModel):
219261
result: Optional[SignContractResult] = None
220262
message: Optional[str] = None
@@ -239,15 +281,6 @@ class ListContractsResponseContent(BaseModel):
239281
shared: List[ContractSummaryItem]
240282

241283

242-
class QASection(BaseModel):
243-
title: str
244-
questions: List[Question]
245-
246-
247-
class QASections(BaseModel):
248-
sections: List[QASection]
249-
250-
251284
class ShareContractResponseContent(BaseModel):
252285
success: bool
253286
contractId: str = Field(..., pattern='^[A-Za-z0-9-]+$')

typescript/src/index.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ export type ContractSummaryItem = ExtractSchema<'ContractSummaryItem'>
1919
export type ContractType = ExtractSchema<'ContractType'>
2020
export type DeleteContractRequestContent = ExtractSchema<'DeleteContractRequestContent'>
2121
export type DeleteContractResponseContent = ExtractSchema<'DeleteContractResponseContent'>
22+
export type ExposeTypesResponseContent = ExtractSchema<'ExposeTypesResponseContent'>
23+
export type FixedTermValue = ExtractSchema<'FixedTermValue'>
24+
export type FixedValueTermInference = ExtractSchema<'FixedValueTermInference'>
2225
export type DeleteContractSignatureRequestContent = ExtractSchema<'DeleteContractSignatureRequestContent'>
2326
export type DeleteContractSignatureResponseContent = ExtractSchema<'DeleteContractSignatureResponseContent'>
2427
export type GetContractReadURLRequestContent = ExtractSchema<'GetContractReadURLRequestContent'>
@@ -38,13 +41,13 @@ export type ListContractsResponseContent = ExtractSchema<'ListContractsResponseC
3841
export type PingResponseContent = ExtractSchema<'PingResponseContent'>
3942
export type PresignedPostData = ExtractSchema<'PresignedPostData'>
4043
export type ProcessingIncompleteErrorResponseContent = ExtractSchema<'ProcessingIncompleteErrorResponseContent'>
44+
export type QA = ExtractSchema<'QA'>
4145
export type QASection = ExtractSchema<'QASection'>
42-
export type QASections = ExtractSchema<'QASections'>
43-
export type Question = ExtractSchema<'Question'>
4446
export type ResourceNotFoundErrorResponseContent = ExtractSchema<'ResourceNotFoundErrorResponseContent'>
4547
export type ShareContractRequestContent = ExtractSchema<'ShareContractRequestContent'>
4648
export type ShareContractResponseContent = ExtractSchema<'ShareContractResponseContent'>
4749
export type SharedUserDetails = ExtractSchema<'SharedUserDetails'>
50+
export type Term = ExtractSchema<'Term'>
4851
export type SignContractRequestContent = ExtractSchema<'SignContractRequestContent'>
4952
export type SignContractResponseContent = ExtractSchema<'SignContractResponseContent'>
5053
export type SignContractResult = ExtractSchema<'SignContractResult'>

0 commit comments

Comments
 (0)