Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion src/main/java/com/twilio/oai/DirectoryStructureService.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.twilio.oai;

import com.twilio.oai.common.Utility;
import com.twilio.oai.java.cache.ResourceCacheContext;
import com.twilio.oai.resolver.CaseResolver;
import com.twilio.oai.resource.IResourceTree;
import com.twilio.oai.resource.Resource;
Expand Down Expand Up @@ -103,7 +104,9 @@ public void configure(final OpenAPI openAPI) {
}

updateAccountSidParam(operation);
updatePaginationParams(operation);
if (ResourceCacheContext.get() == null || !ResourceCacheContext.get().isV1()) {
updatePaginationParams(operation);
}

pathType.ifPresent(type -> Optional
.ofNullable(operation.getExtensions())
Expand Down
18 changes: 18 additions & 0 deletions src/main/java/com/twilio/oai/TwilioPhpGenerator.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,11 @@
import com.twilio.oai.api.PhpApiResourceBuilder;
import com.twilio.oai.api.PhpApiResources;
import com.twilio.oai.api.PhpDomainBuilder;
import com.twilio.oai.common.ApplicationConstants;
import com.twilio.oai.common.EnumConstants;
import com.twilio.oai.common.Utility;
import com.twilio.oai.java.cache.ResourceCache2;
import com.twilio.oai.java.cache.ResourceCacheContext;
import com.twilio.oai.resolver.IConventionMapper;
import com.twilio.oai.resolver.LanguageConventionResolver;
import com.twilio.oai.resolver.common.CodegenModelResolver;
Expand All @@ -29,6 +32,7 @@

public class TwilioPhpGenerator extends PhpClientCodegen {

ResourceCache2 resourceCache2 = new ResourceCache2();
public static final String VALUES = "values";
public static final String JSON_INGRESS = "json_ingress";
private static final String PHP_CONVENTIONAL_MAP_PATH = "config/" + EnumConstants.Generator.TWILIO_PHP.getValue() + ".json";
Expand All @@ -51,6 +55,8 @@ protected ImmutableMap.Builder<String, Mustache.Lambda> addMustacheLambdas() {

public TwilioPhpGenerator() {
super();
ResourceCacheContext.clear();
ResourceCacheContext.set(resourceCache2); // initialize the resource cache context to avoid null pointer exceptions
twilioCodegen = new TwilioCodegenAdapter(this, getName());
}

Expand All @@ -73,7 +79,19 @@ public void processOpts() {
}

@Override
@SuppressWarnings("unchecked")
public void processOpenAPI(final OpenAPI openAPI) {
String apiStdVersion = null;
if (openAPI.getInfo().getExtensions() != null && openAPI.getInfo().getExtensions().containsKey("x-twilio")) {
Object xTwilioObj = openAPI.getInfo().getExtensions().get("x-twilio");
if (xTwilioObj instanceof Map) {
Map<String, Object> xTwilio = (Map<String, Object>) xTwilioObj;
apiStdVersion = (String) xTwilio.get("apiStandards");
}
}
boolean isV1 = ApplicationConstants.isV1.test(apiStdVersion);
ResourceCacheContext.get().setV1(isV1);

String domain = StringHelper.camelize(twilioCodegen.getDomainFromOpenAPI(openAPI));
String version = StringHelper.camelize(twilioCodegen.getVersionFromOpenAPI(openAPI));
twilioCodegen.setDomain(domain);
Expand Down
5 changes: 5 additions & 0 deletions src/main/java/com/twilio/oai/api/ApiResources.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import java.util.Map;
import java.util.Set;

import com.twilio.oai.java.cache.ResourceCacheContext;
import org.openapitools.codegen.CodegenModel;
import org.openapitools.codegen.CodegenOperation;
import org.openapitools.codegen.CodegenParameter;
Expand All @@ -23,6 +24,7 @@ public class ApiResources {
String namespaceSubPart;
boolean hasPaginationOperation;
Set<CodegenModel> nestedModels;
private Boolean isApiV1 = null; // true or NULL

public ApiResources(ApiResourceBuilder apiResourceBuilder) {
apiOperations = apiResourceBuilder.codegenOperationList;
Expand All @@ -36,5 +38,8 @@ public ApiResources(ApiResourceBuilder apiResourceBuilder) {
namespaceSubPart = apiResourceBuilder.namespaceSubPart;
hasPaginationOperation = apiResourceBuilder.hasPaginationOperation();
nestedModels = apiResourceBuilder.nestedModels;
if (ResourceCacheContext.get() != null && ResourceCacheContext.get().isV1()) {
isApiV1 = true;
}
}
}
7 changes: 4 additions & 3 deletions src/main/resources/twilio-php/listRead.mustache
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,8 @@
*/
public function stream({{#vendorExtensions.x-has-non-pagination-params}}array $options = [], {{/vendorExtensions.x-has-non-pagination-params}}?int $limit = null, $pageSize = null): Stream
{
$limits = $this->version->readLimits($limit, $pageSize);
{{#isApiV1}}{{#vendorExtensions.x-has-non-pagination-params}}$pageSize = $options['pageSize'] ?? $pageSize;
{{/vendorExtensions.x-has-non-pagination-params}}{{/isApiV1}}$limits = $this->version->readLimits($limit, $pageSize);

$page = $this->page({{#vendorExtensions.x-has-non-pagination-params}}$options, {{/vendorExtensions.x-has-non-pagination-params}}$limits['pageSize']);

Expand Down Expand Up @@ -107,9 +108,9 @@
{{/vendorExtensions.x-serialize}}
{{/required}}
{{/queryParams}}
'PageToken' => $pageToken,
{{^isApiV1}}'PageToken' => $pageToken,
'Page' => $pageNumber,
'PageSize' => $pageSize,
'PageSize' => $pageSize,{{/isApiV1}}
]);

$headers = Values::of([{{^consumes}}'Content-Type' => 'application/x-www-form-urlencoded'{{/consumes}}{{#consumes}}{{#-first}}'Content-Type' => '{{{mediaType}}}'{{/-first}}{{/consumes}}{{#produces}}{{#-first}}, 'Accept' => '{{{mediaType}}}'{{/-first}}{{/produces}}]);
Expand Down
5 changes: 3 additions & 2 deletions src/main/resources/twilio-php/page.mustache
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,11 @@
namespace Twilio\Rest\{{domainName}}\{{version}}{{namespaceSubPart}};

use Twilio\Http\Response;
use Twilio\Page;
use Twilio\Page;{{#isApiV1}}
use Twilio\TokenPaginationPage;{{/isApiV1}}
use Twilio\Version;

class {{apiName}}Page extends Page
class {{apiName}}Page extends {{#isApiV1}}TokenPaginationPage{{/isApiV1}}{{^isApiV1}}Page{{/isApiV1}}
{
/**
* @param Version $version Version that contains the resource
Expand Down
Loading