@@ -13,36 +13,49 @@ public class APITemplateCreator : TemplateCreator
13
13
private PolicyTemplateCreator policyTemplateCreator ;
14
14
private ProductAPITemplateCreator productAPITemplateCreator ;
15
15
private DiagnosticTemplateCreator diagnosticTemplateCreator ;
16
+ private ReleaseTemplateCreator releaseTemplateCreator ;
16
17
17
- public APITemplateCreator ( FileReader fileReader , PolicyTemplateCreator policyTemplateCreator , ProductAPITemplateCreator productAPITemplateCreator , DiagnosticTemplateCreator diagnosticTemplateCreator )
18
+ public APITemplateCreator ( FileReader fileReader , PolicyTemplateCreator policyTemplateCreator , ProductAPITemplateCreator productAPITemplateCreator , DiagnosticTemplateCreator diagnosticTemplateCreator , ReleaseTemplateCreator releaseTemplateCreator )
18
19
{
19
20
this . fileReader = fileReader ;
20
21
this . policyTemplateCreator = policyTemplateCreator ;
21
22
this . productAPITemplateCreator = productAPITemplateCreator ;
22
23
this . diagnosticTemplateCreator = diagnosticTemplateCreator ;
24
+ this . releaseTemplateCreator = releaseTemplateCreator ;
23
25
}
24
26
25
- public async Task < List < Template > > CreateAPITemplatesAsync ( CreatorConfig creatorConfig , APIConfig api )
27
+ public async Task < List < Template > > CreateAPITemplatesAsync ( APIConfig api )
26
28
{
27
29
// determine if api needs to be split into multiple templates
28
30
bool isSplit = isSplitAPI ( api ) ;
29
31
32
+ // update api name if necessary (apiRevision > 1 and isCurrent = true)
33
+ int revisionNumber = 0 ;
34
+ if ( Int32 . TryParse ( api . apiRevision , out revisionNumber ) )
35
+ {
36
+ if ( revisionNumber > 1 && api . isCurrent == true )
37
+ {
38
+ string currentAPIName = api . name ;
39
+ api . name += $ ";rev={ revisionNumber } ";
40
+ }
41
+ }
42
+
30
43
List < Template > apiTemplates = new List < Template > ( ) ;
31
44
if ( isSplit == true )
32
45
{
33
46
// create 2 templates, an initial template with metadata and a subsequent template with the swagger content
34
- apiTemplates . Add ( await CreateAPITemplateAsync ( creatorConfig , api , isSplit , true ) ) ;
35
- apiTemplates . Add ( await CreateAPITemplateAsync ( creatorConfig , api , isSplit , false ) ) ;
47
+ apiTemplates . Add ( await CreateAPITemplateAsync ( api , isSplit , true ) ) ;
48
+ apiTemplates . Add ( await CreateAPITemplateAsync ( api , isSplit , false ) ) ;
36
49
}
37
50
else
38
51
{
39
52
// create a unified template that includes both the metadata and swagger content
40
- apiTemplates . Add ( await CreateAPITemplateAsync ( creatorConfig , api , isSplit , false ) ) ;
53
+ apiTemplates . Add ( await CreateAPITemplateAsync ( api , isSplit , false ) ) ;
41
54
}
42
55
return apiTemplates ;
43
56
}
44
57
45
- public async Task < Template > CreateAPITemplateAsync ( CreatorConfig creatorConfig , APIConfig api , bool isSplit , bool isInitial )
58
+ public async Task < Template > CreateAPITemplateAsync ( APIConfig api , bool isSplit , bool isInitial )
46
59
{
47
60
// create empty template
48
61
Template apiTemplate = CreateEmptyTemplate ( ) ;
@@ -77,12 +90,15 @@ public List<TemplateResource> CreateChildResourceTemplates(APIConfig api)
77
90
List < PolicyTemplateResource > operationPolicyResources = api . operations != null ? this . policyTemplateCreator . CreateOperationPolicyTemplateResources ( api , dependsOn ) : null ;
78
91
List < ProductAPITemplateResource > productAPIResources = api . products != null ? this . productAPITemplateCreator . CreateProductAPITemplateResources ( api , dependsOn ) : null ;
79
92
DiagnosticTemplateResource diagnosticTemplateResource = api . diagnostic != null ? this . diagnosticTemplateCreator . CreateAPIDiagnosticTemplateResource ( api , dependsOn ) : null ;
93
+ // add release resource if the name has been appended with ;rev{revisionNumber}
94
+ ReleaseTemplateResource releaseTemplateResource = api . name . Contains ( ";rev" ) == true ? this . releaseTemplateCreator . CreateAPIReleaseTemplateResource ( api , dependsOn ) : null ;
80
95
81
96
// add resources if not null
82
97
if ( apiPolicyResource != null ) resources . Add ( apiPolicyResource ) ;
83
98
if ( operationPolicyResources != null ) resources . AddRange ( operationPolicyResources ) ;
84
99
if ( productAPIResources != null ) resources . AddRange ( productAPIResources ) ;
85
100
if ( diagnosticTemplateResource != null ) resources . Add ( diagnosticTemplateResource ) ;
101
+ if ( releaseTemplateResource != null ) resources . Add ( releaseTemplateResource ) ;
86
102
87
103
return resources ;
88
104
}
0 commit comments