forked from loafle/openapi-generator-original
		
	Merge pull request #6 from mrjf/master
list serialization to CSV, generic header param handling (for auth_token), cleaner php codegen path
This commit is contained in:
		
						commit
						a19a8d7e99
					
				@ -50,13 +50,20 @@ class APIClient {
 | 
			
		||||
 | 
			
		||||
		$headers = array();
 | 
			
		||||
		$headers[] = "Content-type: application/json";
 | 
			
		||||
		$headers[] = "api_key: " . $this->apiKey;
 | 
			
		||||
 | 
			
		||||
        # Allow API key from $headerParams to override default
 | 
			
		||||
        $added_api_key = False;
 | 
			
		||||
		if ($headerParams != null) {
 | 
			
		||||
			foreach ($headerParams as $key => $val) {
 | 
			
		||||
				$headers[] = "$key: $val";
 | 
			
		||||
				if ($key == 'api_key') {
 | 
			
		||||
				    $added_api_key = True;
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		if (! $added_api_key) {
 | 
			
		||||
		    $headers[] = "api_key: " . $this->apiKey;    
 | 
			
		||||
		}		
 | 
			
		||||
		
 | 
			
		||||
		if (is_object($postData) or is_array($postData)) {
 | 
			
		||||
			$postData = json_encode($postData);
 | 
			
		||||
@ -117,13 +124,17 @@ class APIClient {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Serialize the object to a string of JSON
 | 
			
		||||
	 *
 | 
			
		||||
	 * @param object $object an object to be serialized to JSON
 | 
			
		||||
	 * @return string the serialized JSON
 | 
			
		||||
	 * Take value and turn it into a string suitable for inclusion in 
 | 
			
		||||
	 * the path or the header
 | 
			
		||||
	 * @param object $object an object to be serialized to a string
 | 
			
		||||
	 * @return string the serialized object
 | 
			
		||||
	 */
 | 
			
		||||
	public static function serialize($object) {
 | 
			
		||||
		return json_encode($object);
 | 
			
		||||
	public static function toPathValue($object) {
 | 
			
		||||
        if (is_array($object)) {
 | 
			
		||||
            return implode(',', $object);
 | 
			
		||||
        } else {
 | 
			
		||||
            return $object;
 | 
			
		||||
        }
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -51,28 +51,27 @@ $if(!method.responseVoid)$
 | 
			
		||||
        \$queryParams = array();
 | 
			
		||||
        \$headerParams = array();
 | 
			
		||||
    
 | 
			
		||||
$if(method.authToken)$
 | 
			
		||||
    if(\$authToken == null || strlen(\$authToken) == 0) {
 | 
			
		||||
      throw new Exception('missing authToken');
 | 
			
		||||
    }
 | 
			
		||||
    \$headerParams['auth_token'] = \$authToken;
 | 
			
		||||
$endif$
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
$if(!method.inputModel)$		
 | 
			
		||||
$method.queryParameters:{ argument |
 | 
			
		||||
		\$queryParams['$argument.name$'] = \$$argument.name$;
 | 
			
		||||
    if(\$$argument.name$ != null) {
 | 
			
		||||
		\$queryParams['$argument.name$'] = \$this->apiClient->toPathValue(\$$argument.name$);
 | 
			
		||||
	}
 | 
			
		||||
}$
 | 
			
		||||
$method.pathParameters:{ argument |
 | 
			
		||||
		if(\$$argument.name$ != null) {
 | 
			
		||||
			\$resourcePath = str_replace("{$argument.name$}", \$$argument.name$, \$resourcePath);
 | 
			
		||||
		}
 | 
			
		||||
}$
 | 
			
		||||
$method.headerParameters:{ argument |
 | 
			
		||||
		if(\$$argument.name$ != null) {
 | 
			
		||||
		 	\$headerParams['$argument.name$'] = \$this->apiClient->toPathValue(\$$argument.name$);
 | 
			
		||||
		}
 | 
			
		||||
}$
 | 
			
		||||
$endif$	
 | 
			
		||||
$if(method.inputModel)$		
 | 
			
		||||
$method.queryParameters:{ argument |
 | 
			
		||||
		if(\$$argument.inputModelClassArgument$ != null && \$$argument.inputModelClassArgument$->$argument.name$ != null) {
 | 
			
		||||
		 	\$queryParams["$argument.name$"] =  \$$argument.inputModelClassArgument$->$argument.name$;
 | 
			
		||||
		 	\$queryParams["$argument.name$"] = \$this->apiClient->toPathValue(\$$argument.inputModelClassArgument$->$argument.name$);
 | 
			
		||||
		}
 | 
			
		||||
}$
 | 
			
		||||
$method.pathParameters:{ argument |
 | 
			
		||||
@ -80,7 +79,13 @@ $method.pathParameters:{ argument |
 | 
			
		||||
		 	\$resourcePath = str_replace("{$argument.name$}", \$$argument.inputModelClassArgument$->$argument.name$, \$resourcePath);	
 | 
			
		||||
		}
 | 
			
		||||
}$
 | 
			
		||||
$method.headerParameters:{ argument |
 | 
			
		||||
		if(\$$argument.inputModelClassArgument$ != null && \$$argument.inputModelClassArgument$->$argument.name$ != null) {
 | 
			
		||||
		 	\$headerParams['$argument.name$'] = \$this->apiClient->toPathValue(\$$argument.inputModelClassArgument$->$argument.name$);
 | 
			
		||||
		}
 | 
			
		||||
}$
 | 
			
		||||
$endif$	
 | 
			
		||||
 | 
			
		||||
		//make the API Call
 | 
			
		||||
$if(method.postObject)$
 | 
			
		||||
		\$response = \$this->apiClient->callAPI(\$resourcePath, \$method, \$queryParams, \$postData, \$headerParams);
 | 
			
		||||
 | 
			
		||||
@ -71,14 +71,17 @@ class APIClient:
 | 
			
		||||
 | 
			
		||||
        return data
 | 
			
		||||
 | 
			
		||||
    def serialize(self, obj):
 | 
			
		||||
        """
 | 
			
		||||
    def toPathValue(self, obj):
 | 
			
		||||
        """Serialize a list to a CSV string, if necessary.
 | 
			
		||||
        Args:
 | 
			
		||||
            obj -- data object to be serialized
 | 
			
		||||
        Returns:
 | 
			
		||||
            string -- json serialization of object
 | 
			
		||||
        """
 | 
			
		||||
        return json.dumps(obj)
 | 
			
		||||
        if type(obj) == list:
 | 
			
		||||
            return ','.join(obj)
 | 
			
		||||
        else:
 | 
			
		||||
            return obj
 | 
			
		||||
 | 
			
		||||
    def deserialize(self, obj, objClass):
 | 
			
		||||
        """Derialize a JSON string into an object.
 | 
			
		||||
 | 
			
		||||
@ -51,33 +51,36 @@ $methods:{ method |
 | 
			
		||||
 | 
			
		||||
        queryParams = {}
 | 
			
		||||
        headerParams = {}
 | 
			
		||||
$if(method.authToken)$
 | 
			
		||||
        if not authToken:
 | 
			
		||||
            raise Exception('missing authToken')
 | 
			
		||||
        headerParams['auth_token'] = authToken
 | 
			
		||||
$endif$
 | 
			
		||||
 | 
			
		||||
$if(!method.inputModel)$
 | 
			
		||||
$method.queryParameters:{ argument |
 | 
			
		||||
        queryParams['$argument.name$'] = $argument.name$
 | 
			
		||||
        queryParams['$argument.name$'] = self.apiClient.toPathValue($argument.name$)
 | 
			
		||||
}$
 | 
			
		||||
 | 
			
		||||
$method.pathParameters:{ argument |
 | 
			
		||||
        if $argument.name$ != None:
 | 
			
		||||
            resourcePath = resourcePath.replace('{$argument.name$}', $argument.name$)
 | 
			
		||||
 | 
			
		||||
}$
 | 
			
		||||
$method.headerParameters:{ argument |
 | 
			
		||||
        if $argument.name$ != None:
 | 
			
		||||
		    headerParams['$argument.name$'] = self.apiClient.toPathValue($argument.name$)
 | 
			
		||||
}$
 | 
			
		||||
$endif$
 | 
			
		||||
$if(method.inputModel)$
 | 
			
		||||
$method.queryParameters:{ argument |
 | 
			
		||||
        if $argument.inputModelClassArgument$ != None and $argument.inputModelClassArgument$.$argument.name$ != None:
 | 
			
		||||
             queryParams['$argument.name$'] = $argument.inputModelClassArgument$.$argument.name$
 | 
			
		||||
            queryParams['$argument.name$'] = self.apiClient.toPathValue($argument.inputModelClassArgument$.$argument.name$)
 | 
			
		||||
 | 
			
		||||
}$
 | 
			
		||||
$method.pathParameters:{ argument |
 | 
			
		||||
        if $argument.inputModelClassArgument$ != None and $argument.inputModelClassArgument$.$argument.name$ != None:
 | 
			
		||||
             resourcePath = resourcePath.replace('{$argument.name$}', $argument.inputModelClassArgument$.$argument.name$)
 | 
			
		||||
            resourcePath = resourcePath.replace('{$argument.name$}', $argument.inputModelClassArgument$.$argument.name$)
 | 
			
		||||
}$
 | 
			
		||||
$method.headerParameters:{ argument |
 | 
			
		||||
        if $argument.inputModelClassArgument$ != None and $argument.inputModelClassArgument$.$argument.name$ != None:
 | 
			
		||||
			headerParams['$argument.name$'] = self.apiClient.toPathValue($argument.inputModelClassArgument$.$argument.name$)
 | 
			
		||||
}$
 | 
			
		||||
 | 
			
		||||
$endif$
 | 
			
		||||
 | 
			
		||||
        # Make the API Call
 | 
			
		||||
 | 
			
		||||
@ -30,7 +30,6 @@ import java.io.File;
 | 
			
		||||
 * Time: 11:00 PM
 | 
			
		||||
 */
 | 
			
		||||
public class PHPLibCodeGen extends LibraryCodeGenerator {
 | 
			
		||||
	String outputBasePath;
 | 
			
		||||
 | 
			
		||||
    public static void main(String[] args) {
 | 
			
		||||
        if(args.length < 1){
 | 
			
		||||
@ -50,19 +49,21 @@ public class PHPLibCodeGen extends LibraryCodeGenerator {
 | 
			
		||||
            String packageName = args[2];
 | 
			
		||||
            String libraryHome = args[3];
 | 
			
		||||
            if(libraryHome.endsWith("/")){
 | 
			
		||||
                libraryHome = libraryHome.substring(0, libraryHome.length()-1) + packageName;
 | 
			
		||||
                libraryHome = libraryHome.substring(0, libraryHome.length()-1);
 | 
			
		||||
            }
 | 
			
		||||
            String modelPackageName = packageName+".model";
 | 
			
		||||
            String apiPackageName = packageName+".api";
 | 
			
		||||
            String classOutputDir = libraryHome + "/src/main/php/" + packageName.replace(".","/");
 | 
			
		||||
            PHPLibCodeGen codeGenerator = new PHPLibCodeGen(apiServerURL, apiKey, modelPackageName, apiPackageName, classOutputDir, libraryHome);
 | 
			
		||||
            String classOutputDir = libraryHome + packageName.replace(".","/");
 | 
			
		||||
            PHPLibCodeGen codeGenerator = new PHPLibCodeGen(apiServerURL, apiKey, modelPackageName,
 | 
			
		||||
                    apiPackageName, classOutputDir, libraryHome);
 | 
			
		||||
            codeGenerator.generateCode();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public PHPLibCodeGen(String apiServerURL, String apiKey, String modelPackageName, String apiPackageName, String classOutputDir, String libraryHome){
 | 
			
		||||
    public PHPLibCodeGen(String apiServerURL, String apiKey, String modelPackageName, String apiPackageName,
 | 
			
		||||
                          String classOutputDir, String libraryHome){
 | 
			
		||||
        super(apiServerURL, apiKey, modelPackageName, apiPackageName, classOutputDir, libraryHome);
 | 
			
		||||
        this.outputBasePath = classOutputDir;
 | 
			
		||||
        this.setDataTypeMappingProvider(new PHPDataTypeMappingProvider());
 | 
			
		||||
        this.setNameGenerator(new CamelCaseNamingPolicyProvider());
 | 
			
		||||
    }
 | 
			
		||||
@ -86,8 +87,8 @@ public class PHPLibCodeGen extends LibraryCodeGenerator {
 | 
			
		||||
        FileUtil.createOutputDirectories(PHPConfiguration.getResourceClassLocation(), PHPConfiguration.getClassFileExtension());
 | 
			
		||||
        FileUtil.clearFolder(PHPConfiguration.getModelClassLocation());
 | 
			
		||||
        FileUtil.clearFolder(PHPConfiguration.getResourceClassLocation());
 | 
			
		||||
 | 
			
		||||
        FileUtil.copyDirectory(new File(PHPConfiguration.getStructureLocation()), new File(PHPConfiguration.getLibraryHome() + "/src/main/php"));
 | 
			
		||||
        FileUtil.copyDirectory(new File(PHPConfiguration.getStructureLocation()), new File(PHPConfiguration.getResourceClassLocation()));
 | 
			
		||||
        return PHPConfiguration;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user