add back flash generator

This commit is contained in:
wing328 2015-08-15 18:12:14 +08:00
parent 84ff5cfc87
commit 3478e053e1
128 changed files with 9954 additions and 109 deletions

31
bin/flash-petstore.sh Executable file
View File

@ -0,0 +1,31 @@
#!/bin/sh
SCRIPT="$0"
while [ -h "$SCRIPT" ] ; do
ls=`ls -ld "$SCRIPT"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
SCRIPT="$link"
else
SCRIPT=`dirname "$SCRIPT"`/"$link"
fi
done
if [ ! -d "${APP_DIR}" ]; then
APP_DIR=`dirname "$SCRIPT"`/..
APP_DIR=`cd "${APP_DIR}"; pwd`
fi
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
if [ ! -f "$executable" ]
then
mvn clean package
fi
# if you've executed sbt assembly previously it will use that instead.
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
ags="$@ generate -t modules/swagger-codegen/src/main/resources/flash -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l flash -o samples/client/petstore/flash"
java $JAVA_OPTS -jar $executable $ags

View File

@ -0,0 +1,302 @@
package io.swagger.codegen.languages;
import io.swagger.codegen.CliOption;
import io.swagger.codegen.CodegenConfig;
import io.swagger.codegen.CodegenType;
import io.swagger.codegen.DefaultCodegen;
import io.swagger.codegen.SupportingFile;
import io.swagger.models.properties.ArrayProperty;
import io.swagger.models.properties.MapProperty;
import io.swagger.models.properties.Property;
import java.io.File;
import java.util.Arrays;
import java.util.HashSet;
import org.apache.commons.lang.StringUtils;
public class FlashClientCodegen extends DefaultCodegen implements CodegenConfig {
protected String packageName = null;
protected String packageVersion = null;
protected String invokerPackage = "io.swagger";
protected String sourceFolder = "src/main/flex";
public FlashClientCodegen() {
super();
modelPackage = "models";
apiPackage = "api";
outputFolder = "generated-code" + File.separatorChar + "flash";
modelTemplateFiles.put("model.mustache", ".as");
modelTemplateFiles.put("modelList.mustache", "List.as");
apiTemplateFiles.put("api.mustache", ".as");
templateDir = "flash";
languageSpecificPrimitives.clear();
languageSpecificPrimitives.add("Number");
languageSpecificPrimitives.add("Boolean");
languageSpecificPrimitives.add("String");
languageSpecificPrimitives.add("Date");
typeMapping.clear();
typeMapping.put("integer", "Number");
typeMapping.put("float", "Number");
typeMapping.put("long", "Number");
typeMapping.put("double", "Number");
typeMapping.put("array", "Array");
typeMapping.put("map", "Dictionary");
typeMapping.put("boolean", "Boolean");
typeMapping.put("string", "String");
typeMapping.put("date", "Date");
typeMapping.put("DateTime", "Date");
typeMapping.put("object", "Object");
typeMapping.put("file", "File");
// from
reservedWords = new HashSet<String>(
Arrays.asList(
"add", "for", "lt", "tellTarget", "and", "function", "ne", "this", "break", "ge", "new", "typeof", "continue", "gt", "not", "var", "delete", "if", "on", "void", "do", "ifFrameLoaded", "onClipEvent", "while", "else", "in", "or", "with", "eq", "le", "return"));
cliOptions.clear();
cliOptions.add(new CliOption("packageName", "flash package name (convention: package.name), default: swagger.client"));
cliOptions.add(new CliOption("packageVersion", "flash package version, default: 1.0.0"));
cliOptions.add(new CliOption("invokerPackage", "root package for generated code"));
cliOptions.add(new CliOption("sourceFolder", "source folder for generated code. e.g. src/main/flex"));
}
@Override
public void processOpts() {
super.processOpts();
if (additionalProperties.containsKey("invokerPackage")) {
this.setInvokerPackage((String) additionalProperties.get("invokerPackage"));
} else {
//not set, use default to be passed to template
additionalProperties.put("invokerPackage", invokerPackage);
}
if (additionalProperties.containsKey("sourceFolder")) {
this.setSourceFolder((String) additionalProperties.get("sourceFolder"));
}
if (additionalProperties.containsKey("packageName")) {
setPackageName((String) additionalProperties.get("packageName"));
}
else {
setPackageName("swagger.client");
}
if (additionalProperties.containsKey("packageVersion")) {
setPackageVersion((String) additionalProperties.get("packageVersion"));
}
else {
setPackageVersion("1.0.0");
}
additionalProperties.put("packageName", packageName);
additionalProperties.put("packageVersion", packageVersion);
modelPackage = invokerPackage + File.separatorChar + "client" + File.separatorChar + "model";
apiPackage = invokerPackage + File.separatorChar + "client" + File.separatorChar + "api";
final String invokerFolder = (sourceFolder + File.separator + invokerPackage + File.separator + "swagger" + File.separator).replace(".", File.separator).replace('.', File.separatorChar);
supportingFiles.add(new SupportingFile("ApiInvoker.as", invokerFolder + "common", "ApiInvoker.as"));
supportingFiles.add(new SupportingFile("ApiUrlHelper.as", invokerFolder + "common", "ApiUrlHelper.as"));
supportingFiles.add(new SupportingFile("ApiUserCredentials.as", invokerFolder + "common", "ApiUserCredentials.as"));
supportingFiles.add(new SupportingFile("ListWrapper.as", invokerFolder + "common", "ListWrapper.as"));
supportingFiles.add(new SupportingFile("SwaggerApi.as", invokerFolder + "common", "SwaggerApi.as"));
supportingFiles.add(new SupportingFile("XMLWriter.as", invokerFolder + "common", "XMLWriter.as"));
supportingFiles.add(new SupportingFile("ApiError.as", invokerFolder + "exception", "ApiErrors.as"));
supportingFiles.add(new SupportingFile("ApiErrorCodes.as", invokerFolder + "exception", "ApiErrorCodes.as"));
supportingFiles.add(new SupportingFile("ApiClientEvent.as", invokerFolder + "event", "ApiClientEvent.as"));
supportingFiles.add(new SupportingFile("Response.as", invokerFolder + "event", "Response.as"));
supportingFiles.add(new SupportingFile("build.properties", sourceFolder, "build.properties"));
supportingFiles.add(new SupportingFile("build.xml", sourceFolder, "build.xml"));
supportingFiles.add(new SupportingFile("AirExecutorApp-app.xml", sourceFolder + File.separatorChar + "bin", "AirExecutorApp-app.xml"));
supportingFiles.add(new SupportingFile("ASAXB-0.1.1.swc", sourceFolder + File.separatorChar + "lib", "ASAXB-0.1.1.swc"));
supportingFiles.add(new SupportingFile("as3corelib.swc", sourceFolder + File.separatorChar + "lib", "as3corelib.swc"));
supportingFiles.add(new SupportingFile("flexunit-4.1.0_RC2-28-flex_3.5.0.12683.swc", sourceFolder + File.separator + "lib" + File.separator + "ext", "flexunit-4.1.0_RC2-28-flex_3.5.0.12683.swc"));
supportingFiles.add(new SupportingFile("flexunit-aircilistener-4.1.0_RC2-28-3.5.0.12683.swc", sourceFolder + File.separator + "lib" + File.separator + "ext", "flexunit-aircilistener-4.1.0_RC2-28-3.5.0.12683.swc"));
supportingFiles.add(new SupportingFile("flexunit-cilistener-4.1.0_RC2-28-3.5.0.12683.swc", sourceFolder + File.separator + "lib" + File.separator + "ext", "flexunit-cilistener-4.1.0_RC2-28-3.5.0.12683.swc"));
supportingFiles.add(new SupportingFile("flexunit-core-flex-4.0.0.2-sdk3.5.0.12683.swc", sourceFolder + File.separator + "lib" + File.separator + "ext", "flexunit-core-flex-4.0.0.2-sdk3.5.0.12683.swc"));
}
private static String dropDots(String str) {
return str.replaceAll("\\.", "_");
}
public CodegenType getTag() {
return CodegenType.CLIENT;
}
public String getName() {
return "flash";
}
public String getHelp() {
return "Generates a Flash client library.";
}
@Override
public String escapeReservedWord(String name) {
return name + "_";
}
@Override
public String apiFileFolder() {
return (outputFolder + File.separatorChar + sourceFolder + File.separatorChar + apiPackage().replace('.', File.separatorChar)).replace('/', File.separatorChar);
}
public String modelFileFolder() {
return (outputFolder + File.separatorChar + sourceFolder + File.separatorChar + modelPackage().replace('.', File.separatorChar)).replace('/', File.separatorChar);
}
@Override
public String getTypeDeclaration(Property p) {
if (p instanceof ArrayProperty) {
ArrayProperty ap = (ArrayProperty) p;
Property inner = ap.getItems();
return getSwaggerType(p) + "[" + getTypeDeclaration(inner) + "]";
} else if (p instanceof MapProperty) {
MapProperty mp = (MapProperty) p;
Property inner = mp.getAdditionalProperties();
return getSwaggerType(p) + "(str, " + getTypeDeclaration(inner) + ")";
}
return super.getTypeDeclaration(p);
}
@Override
public String getSwaggerType(Property p) {
String swaggerType = super.getSwaggerType(p);
String type = null;
if (typeMapping.containsKey(swaggerType)) {
type = typeMapping.get(swaggerType);
if (languageSpecificPrimitives.contains(type)) {
return type;
}
} else {
type = toModelName(swaggerType);
}
return type;
}
public String toDefaultValue(Property p) {
return "None";
}
@Override
public String toVarName(String name) {
// replace - with _ e.g. created-at => created_at
name = name.replaceAll("-", "_");
// if it's all uppper case, convert to lower case
if (name.matches("^[A-Z_]*$")) {
name = name.toLowerCase();
}
// underscore the variable name
// petId => pet_id
name = camelize(dropDots(name), true);
// for reserved word or word starting with number, append _
if (reservedWords.contains(name) || name.matches("^\\d.*")) {
name = escapeReservedWord(name);
}
return name;
}
@Override
public String toParamName(String name) {
// should be the same as variable name
return toVarName(name);
}
@Override
public String toModelName(String name) {
// model name cannot use reserved keyword, e.g. return
if (reservedWords.contains(name)) {
throw new RuntimeException(name + " (reserved word) cannot be used as a model name");
}
// camelize the model name
// phone_number => PhoneNumber
return camelize(name);
}
@Override
public String toModelFilename(String name) {
// model name cannot use reserved keyword, e.g. return
if (reservedWords.contains(name)) {
throw new RuntimeException(name + " (reserved word) cannot be used as a model name");
}
// underscore the model file name
// PhoneNumber => phone_number
return camelize(dropDots(name));
}
@Override
public String toApiFilename(String name) {
// replace - with _ e.g. created-at => created_at
name = name.replaceAll("-", "_");
// e.g. PhoneNumberApi.rb => phone_number_api.rb
return camelize(name) + "Api";
}
@Override
public String toApiName(String name) {
if (name.length() == 0) {
return "DefaultApi";
}
// e.g. phone_number_api => PhoneNumberApi
return camelize(name) + "Api";
}
@Override
public String toApiVarName(String name) {
if (name.length() == 0) {
return "DefaultApi";
}
return camelize(name) + "Api";
}
@Override
public String toOperationId(String operationId) {
// throw exception if method name is empty
if (StringUtils.isEmpty(operationId)) {
throw new RuntimeException("Empty method name (operationId) not allowed");
}
// method name cannot use reserved keyword, e.g. return
if (reservedWords.contains(operationId)) {
throw new RuntimeException(operationId + " (reserved word) cannot be used as method name");
}
return underscore(operationId);
}
public void setPackageName(String packageName) {
this.packageName = packageName;
}
public void setPackageVersion(String packageVersion) {
this.packageVersion = packageVersion;
}
public void setInvokerPackage(String invokerPackage) {
this.invokerPackage = invokerPackage;
}
public void setSourceFolder(String sourceFolder) {
this.sourceFolder = sourceFolder;
}
}

View File

@ -1,6 +1,7 @@
io.swagger.codegen.languages.AndroidClientCodegen io.swagger.codegen.languages.AndroidClientCodegen
io.swagger.codegen.languages.AsyncScalaClientCodegen io.swagger.codegen.languages.AsyncScalaClientCodegen
io.swagger.codegen.languages.CSharpClientCodegen io.swagger.codegen.languages.CSharpClientCodegen
io.swagger.codegen.languages.FlashClientCodegen
io.swagger.codegen.languages.JavaClientCodegen io.swagger.codegen.languages.JavaClientCodegen
io.swagger.codegen.languages.JaxRSServerCodegen io.swagger.codegen.languages.JaxRSServerCodegen
io.swagger.codegen.languages.JavaInflectorServerCodegen io.swagger.codegen.languages.JavaInflectorServerCodegen

View File

@ -1,87 +1,87 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?> <?xml version="1.0" encoding="utf-8" standalone="no"?>
<application xmlns="http://ns.adobe.com/air/application/2.0"> <application xmlns="http://ns.adobe.com/air/application/2.0">
<!-- Adobe AIR Application Descriptor File Template. <!-- Adobe AIR Application Descriptor File Template.
Specifies parameters for identifying, installing, and launching AIR applications. Specifies parameters for identifying, installing, and launching AIR applications.
xmlns - The Adobe AIR namespace: http://ns.adobe.com/air/application/2.0 xmlns - The Adobe AIR namespace: http://ns.adobe.com/air/application/2.0
The last segment of the namespace specifies the version The last segment of the namespace specifies the version
of the AIR runtime required for this application to run. of the AIR runtime required for this application to run.
minimumPatchLevel - The minimum patch level of the AIR runtime required to run minimumPatchLevel - The minimum patch level of the AIR runtime required to run
the application. Optional. the application. Optional.
--> -->
<!-- A universally unique application identifier. Must be unique across all AIR applications. <!-- A universally unique application identifier. Must be unique across all AIR applications.
Using a reverse DNS-style name as the id is recommended. (Eg. com.example.ExampleApplication.) Required. --> Using a reverse DNS-style name as the id is recommended. (Eg. com.example.ExampleApplication.) Required. -->
<id>AirExecutorApp</id> <id>AirExecutorApp</id>
<!-- Used as the filename for the application. Required. --> <!-- Used as the filename for the application. Required. -->
<filename>AirExecutorApp</filename> <filename>AirExecutorApp</filename>
<!-- The name that is displayed in the AIR application installer. <!-- The name that is displayed in the AIR application installer.
May have multiple values for each language. See samples or xsd schema file. Optional. --> May have multiple values for each language. See samples or xsd schema file. Optional. -->
<name>AirExecutorApp</name> <name>AirExecutorApp</name>
<!-- An application version designator (such as "v1", "2.5", or "Alpha 1"). Required. --> <!-- An application version designator (such as "v1", "2.5", or "Alpha 1"). Required. -->
<version>v1</version> <version>v1</version>
<!-- Description, displayed in the AIR application installer. <!-- Description, displayed in the AIR application installer.
May have multiple values for each language. See samples or xsd schema file. Optional. --> May have multiple values for each language. See samples or xsd schema file. Optional. -->
<!-- <description></description> --> <!-- <description></description> -->
<!-- Copyright information. Optional --> <!-- Copyright information. Optional -->
<!-- <copyright></copyright> --> <!-- <copyright></copyright> -->
<!-- Publisher ID. Used if you're updating an application created prior to 1.5.3 --> <!-- Publisher ID. Used if you're updating an application created prior to 1.5.3 -->
<!-- <publisherID></publisherID> --> <!-- <publisherID></publisherID> -->
<!-- Settings for the application's initial window. Required. --> <!-- Settings for the application's initial window. Required. -->
<initialWindow> <initialWindow>
<!-- The main SWF or HTML file of the application. Required. --> <!-- The main SWF or HTML file of the application. Required. -->
<!-- Note: In Flash Builder, the SWF reference is set automatically. --> <!-- Note: In Flash Builder, the SWF reference is set automatically. -->
<content>AirExecutorApp.swf</content> <content>AirExecutorApp.swf</content>
<!-- The title of the main window. Optional. --> <!-- The title of the main window. Optional. -->
<!-- <title></title> --> <!-- <title></title> -->
<!-- The type of system chrome to use (either "standard" or "none"). Optional. Default standard. --> <!-- The type of system chrome to use (either "standard" or "none"). Optional. Default standard. -->
<!-- <systemChrome></systemChrome> --> <!-- <systemChrome></systemChrome> -->
<!-- Whether the window is transparent. Only applicable when systemChrome is none. Optional. Default false. --> <!-- Whether the window is transparent. Only applicable when systemChrome is none. Optional. Default false. -->
<!-- <transparent></transparent> --> <!-- <transparent></transparent> -->
<!-- Whether the window is initially visible. Optional. Default false. --> <!-- Whether the window is initially visible. Optional. Default false. -->
<!-- <visible></visible> --> <!-- <visible></visible> -->
<!-- Whether the user can minimize the window. Optional. Default true. --> <!-- Whether the user can minimize the window. Optional. Default true. -->
<!-- <minimizable></minimizable> --> <!-- <minimizable></minimizable> -->
<!-- Whether the user can maximize the window. Optional. Default true. --> <!-- Whether the user can maximize the window. Optional. Default true. -->
<!-- <maximizable></maximizable> --> <!-- <maximizable></maximizable> -->
<!-- Whether the user can resize the window. Optional. Default true. --> <!-- Whether the user can resize the window. Optional. Default true. -->
<!-- <resizable></resizable> --> <!-- <resizable></resizable> -->
<!-- The window's initial width in pixels. Optional. --> <!-- The window's initial width in pixels. Optional. -->
<!-- <width></width> --> <!-- <width></width> -->
<!-- The window's initial height in pixels. Optional. --> <!-- The window's initial height in pixels. Optional. -->
<!-- <height></height> --> <!-- <height></height> -->
<!-- The window's initial x position. Optional. --> <!-- The window's initial x position. Optional. -->
<!-- <x></x> --> <!-- <x></x> -->
<!-- The window's initial y position. Optional. --> <!-- The window's initial y position. Optional. -->
<!-- <y></y> --> <!-- <y></y> -->
<!-- The window's minimum size, specified as a width/height pair in pixels, such as "400 200". Optional. --> <!-- The window's minimum size, specified as a width/height pair in pixels, such as "400 200". Optional. -->
<!-- <minSize></minSize> --> <!-- <minSize></minSize> -->
<!-- The window's initial maximum size, specified as a width/height pair in pixels, such as "1600 1200". Optional. --> <!-- The window's initial maximum size, specified as a width/height pair in pixels, such as "1600 1200". Optional. -->
<!-- <maxSize></maxSize> --> <!-- <maxSize></maxSize> -->
</initialWindow> </initialWindow>
<!-- We recommend omitting the supportedProfiles element, --> <!-- We recommend omitting the supportedProfiles element, -->
<!-- which in turn permits your application to be deployed to all --> <!-- which in turn permits your application to be deployed to all -->
@ -90,57 +90,57 @@
<!-- only the profiles which your application does support. --> <!-- only the profiles which your application does support. -->
<!-- <supportedProfiles>desktop extendedDesktop mobileDevice extendedMobileDevice</supportedProfiles> --> <!-- <supportedProfiles>desktop extendedDesktop mobileDevice extendedMobileDevice</supportedProfiles> -->
<!-- The subpath of the standard default installation location to use. Optional. --> <!-- The subpath of the standard default installation location to use. Optional. -->
<!-- <installFolder></installFolder> --> <!-- <installFolder></installFolder> -->
<!-- The subpath of the Programs menu to use. (Ignored on operating systems without a Programs menu.) Optional. --> <!-- The subpath of the Programs menu to use. (Ignored on operating systems without a Programs menu.) Optional. -->
<!-- <programMenuFolder></programMenuFolder> --> <!-- <programMenuFolder></programMenuFolder> -->
<!-- The icon the system uses for the application. For at least one resolution, <!-- The icon the system uses for the application. For at least one resolution,
specify the path to a PNG file included in the AIR package. Optional. --> specify the path to a PNG file included in the AIR package. Optional. -->
<!-- <icon> <!-- <icon>
<image16x16></image16x16> <image16x16></image16x16>
<image32x32></image32x32> <image32x32></image32x32>
<image48x48></image48x48> <image48x48></image48x48>
<image128x128></image128x128> <image128x128></image128x128>
</icon> --> </icon> -->
<!-- Whether the application handles the update when a user double-clicks an update version <!-- Whether the application handles the update when a user double-clicks an update version
of the AIR file (true), or the default AIR application installer handles the update (false). of the AIR file (true), or the default AIR application installer handles the update (false).
Optional. Default false. --> Optional. Default false. -->
<!-- <customUpdateUI></customUpdateUI> --> <!-- <customUpdateUI></customUpdateUI> -->
<!-- Whether the application can be launched when the user clicks a link in a web browser. <!-- Whether the application can be launched when the user clicks a link in a web browser.
Optional. Default false. --> Optional. Default false. -->
<!-- <allowBrowserInvocation></allowBrowserInvocation> --> <!-- <allowBrowserInvocation></allowBrowserInvocation> -->
<!-- Listing of file types for which the application can register. Optional. --> <!-- Listing of file types for which the application can register. Optional. -->
<!-- <fileTypes> --> <!-- <fileTypes> -->
<!-- Defines one file type. Optional. --> <!-- Defines one file type. Optional. -->
<!-- <fileType> --> <!-- <fileType> -->
<!-- The name that the system displays for the registered file type. Required. --> <!-- The name that the system displays for the registered file type. Required. -->
<!-- <name></name> --> <!-- <name></name> -->
<!-- The extension to register. Required. --> <!-- The extension to register. Required. -->
<!-- <extension></extension> --> <!-- <extension></extension> -->
<!-- The description of the file type. Optional. --> <!-- The description of the file type. Optional. -->
<!-- <description></description> --> <!-- <description></description> -->
<!-- The MIME content type. --> <!-- The MIME content type. -->
<!-- <contentType></contentType> --> <!-- <contentType></contentType> -->
<!-- The icon to display for the file type. Optional. --> <!-- The icon to display for the file type. Optional. -->
<!-- <icon> <!-- <icon>
<image16x16></image16x16> <image16x16></image16x16>
<image32x32></image32x32> <image32x32></image32x32>
<image48x48></image48x48> <image48x48></image48x48>
<image128x128></image128x128> <image128x128></image128x128>
</icon> --> </icon> -->
<!-- </fileType> --> <!-- </fileType> -->
<!-- </fileTypes> --> <!-- </fileTypes> -->
</application> </application>

View File

@ -62,11 +62,11 @@
<arg line="-doc-sources ${sourcepath}"/> <arg line="-doc-sources ${sourcepath}"/>
<arg line="-source-path ${sourcepath}"/> <arg line="-source-path ${sourcepath}"/>
<arg line="-footer 'Copyright Wordnik'"/> <arg line="-footer 'Copyright Wordnik'"/>
<arg line="-package com.wordnik.swagger.api 'Contains the apis which are used by clients to make calls to the services deployed'"/> <arg line="-package io.swagger.api 'Contains the apis which are used by clients to make calls to the services deployed'"/>
<arg line="-package com.wordnik.swagger.codegen.model 'Contains common classes which encapsulate data elements required'"/> <arg line="-package io.swagger.codegen.model 'Contains common classes which encapsulate data elements required'"/>
<arg line="-package com.wordnik.swagger.common 'Contains classes which are used by the api classes to invoke the deployed api like SwaggerApi - a base class, ApiUserCredentials, etc.'"/> <arg line="-package io.swagger.common 'Contains classes which are used by the api classes to invoke the deployed api like SwaggerApi - a base class, ApiUserCredentials, etc.'"/>
<arg line="-package com.wordnik.swagger.event 'Results of calls made to Wordnik are returned via dispatched events. This package contains such event classes. Right now thats just ApiClientEvent and Response.'"/> <arg line="-package io.swagger.event 'Results of calls made to Wordnik are returned via dispatched events. This package contains such event classes. Right now thats just ApiClientEvent and Response.'"/>
<arg line="-package com.wordnik.swagger.exception 'Contains classes that encapsulate the errors generated'"/> <arg line="-package io.swagger.exception 'Contains classes that encapsulate the errors generated'"/>
<arg value="-window-title"/> <arg value="-window-title"/>
<arg value="${title}"/> <arg value="${title}"/>

View File

@ -0,0 +1,255 @@
package io.swagger.common {
import io.swagger.event.ApiClientEvent;
import io.swagger.event.Response;
public class ApiInvoker extends EventDispatcher {
private static const DELETE_DATA_DUMMY:String = "dummyDataRequiredForDeleteOverride";
private static const X_HTTP_OVERRIDE_KEY:String = "X-HTTP-Method-Override";
private static const CONTENT_TYPE_HEADER_KEY:String = "Content-Type";
public function ApiInvoker(apiUsageCredentials:ApiUserCredentials, eventNotifier:EventDispatcher, useProxy:Boolean = true) {
_apiUsageCredentials = apiUsageCredentials;
_useProxyServer = useProxy;
if (_apiUsageCredentials.hostName != null) {
_proxyHostName = _apiUsageCredentials.hostName;
}
_apiPath = _apiUsageCredentials.apiPath;
_proxyPath = _apiUsageCredentials.proxyPath;
_apiProxyServerUrl = _apiUsageCredentials.apiProxyServerUrl;
_apiEventNotifier = eventNotifier;
}
public var _apiEventNotifier:EventDispatcher;
internal var _apiProxyServerUrl:String = "";
internal var _useProxyServer:Boolean = true;
private var _apiUsageCredentials:ApiUserCredentials;
private var _baseUrl:String = "";
private var _proxyHostName:String = "";
private var _apiPath:String = "";
private var _proxyPath:String = "";
public function invokeAPI(resourceURL:String, method:String, queryParams:Dictionary, postObject:Object, headerParams:Dictionary):AsyncToken {
//make the communication
if (_useProxyServer) {
resourceURL = _apiProxyServerUrl + resourceURL;
}
else {
resourceURL = "http://" + _proxyHostName + _apiPath + resourceURL;
}
var counter:int = 0;
var symbol:String = "&";
var paramValue:Object;
for (var paramName:String in queryParams) {
paramValue = queryParams[paramName];
//var key:String = paramName;
// do stuff
symbol = "&";
if (counter == 0) {
symbol = "?";
}
resourceURL = resourceURL + symbol + paramName + "=" + paramValue.toString();
counter++;
}
// trace(resourceURL);
//create a httpservice and invoke the rest url waiting for response
var requestHeader:Object = new Object();
if (headerParams != null) {
for (var key:String in headerParams) {
requestHeader[key] = headerParams[key];
}
}
resourceURL = ApiUrlHelper.appendTokenInfo(resourceURL, requestHeader, _apiUsageCredentials);
var bodyData:String = marshal(postObject).toString();//restRequest.postData;
return doRestCall(resourceURL, onApiRequestResult, onApiRequestFault, method, bodyData, requestHeader, "application/xml");
}
public function marshal(source:Object):Object {
// trace("marshal got - " + source)
if (source is String) {
return source;
} else if (source is Array && source.length > 0) {
var writer:XMLWriter = new XMLWriter();
var sourceArray:Array = source as Array;
var arrayEnclosure:String = getArrayEnclosure(sourceArray);
writer.xml.setName(arrayEnclosure);
for (var i:int = 0; i < sourceArray.length; i++) {
var o:Object = sourceArray[i];
writer.xml.appendChild(marshal(o));
}
return writer.xml;
} else
return marshalObject(source);
}
public function marshalObject(source:Object):XML {
var writer:XMLWriter = new XMLWriter();
var objDescriptor:XML = describeType(source);
var property:XML;
var propertyType:String;
var propertyValue:Object;
var qualifiedClassName:String = objDescriptor.@name;
qualifiedClassName = qualifiedClassName.replace("::", ".");
var className:String = qualifiedClassName.substring(qualifiedClassName.lastIndexOf(".") + 1);
className = className().toLowerCase() + className.substring(1);
writer.xml.setName(className);
for each(property in objDescriptor.elements("variable")) {
propertyValue = source[property.@name];
if (propertyValue != null) {
if (ObjectUtil.isSimple(propertyValue)) {
writer.addProperty(property.@name, propertyValue.toString());
}
else {
writer.addProperty(property.@name, marshal(propertyValue).toXMLString());
}
}
}
for each(property in objDescriptor.elements("accessor")) {
if (property.@access == "readonly") {
continue;
}
propertyValue = source[property.@name];
if (source[property.@name] != null) {
if (ObjectUtil.isSimple(propertyValue)) {
writer.addProperty(property.@name, propertyValue.toString());
}
else {
writer.addProperty(property.@name, marshal(propertyValue).toXMLString());
}
}
}
return writer.xml;
}
public function escapeString(str:String):String {
return str;
}
private function doRestCall(url:String, resultFunction:Function, faultFunction:Function = null,
restMethod:String = "GET",
bodyData:Object = null, headers:Object = null, contentType:String = "application/xml"):AsyncToken {
var httpService:HTTPService = new HTTPService();
if (headers == null) {
headers = new Object();
}
httpService.method = restMethod;
if (restMethod.toUpperCase() != HTTPRequestMessage.GET_METHOD) {
//httpService.method = HTTPRequestMessage.POST_METHOD; - not required as we're using the proxy
if (bodyData == null) {
bodyData = new Object();
}
if (restMethod == HTTPRequestMessage.DELETE_METHOD) {
headers[X_HTTP_OVERRIDE_KEY] = HTTPRequestMessage.DELETE_METHOD;
bodyData = DELETE_DATA_DUMMY;
}
else if (restMethod == HTTPRequestMessage.PUT_METHOD) {
headers[X_HTTP_OVERRIDE_KEY] = HTTPRequestMessage.PUT_METHOD;
}
else {
headers[CONTENT_TYPE_HEADER_KEY] = contentType;
}
}
else {
//if the request type is GET and content type is xml then the Flex HTTPService converts it to a POST ... yeah
contentType = null;
}
httpService.url = url;
httpService.contentType = contentType;
httpService.resultFormat = "e4x";
httpService.headers = headers;
httpService.addEventListener(ResultEvent.RESULT, resultFunction);
if (faultFunction != null) {
httpService.addEventListener(FaultEvent.FAULT, faultFunction);
}
if (_useProxyServer) {
httpService.useProxy = true;
var channelSet:ChannelSet = new ChannelSet();
var httpChannel:HTTPChannel = new HTTPChannel();
httpChannel.uri = ApiUrlHelper.getProxyUrl(_proxyHostName, _proxyPath);
channelSet.addChannel(httpChannel);
httpService.channelSet = channelSet;
}
return httpService.send(bodyData);
}
private function onApiRequestResult(event:ResultEvent):void {
var completionListener:Function = event.token.completionListener;
var result:Object = event.result;
var resultType:Class = event.token.returnType;
var resultObject:Object;
if (resultType != null) {
var context:ASAXBContext = ASAXBContext.newInstance(resultType);
var unmarshaller:Unmarshaller = context.createUnmarshaller();
var resultXML:XML = new XML(event.result);
try {
resultObject = unmarshaller.unmarshal(resultXML);
}
catch (error:TypeError) {
var errorResponse:Response = new Response(false, null, "Could not unmarshall response");
if (_apiEventNotifier != null) { //dispatch event via assigned dispatcher
var failureEvent:ApiClientEvent = new ApiClientEvent(event.token.completionEventType);
failureEvent.response = errorResponse;
_apiEventNotifier.dispatchEvent(failureEvent);
}
}
if (resultObject is ListWrapper) {
resultObject = ListWrapper(resultObject).getList();
}
}
var response:Response = new Response(true, resultObject);
response.requestId = event.token.requestId;
var successEventType:String = event.token.completionEventType != null ? event.token.completionEventType : ApiClientEvent.SUCCESS_EVENT;
if (_apiEventNotifier != null) { //dispatch event via assigned dispatcher
var successEvent:ApiClientEvent = new ApiClientEvent(successEventType);
successEvent.response = response;
_apiEventNotifier.dispatchEvent(successEvent);
}
}
private function onApiRequestFault(event:FaultEvent):void {
var completionListener:Function = event.token.completionListener;
if (completionListener != null) {
completionListener.call(null, new Response(false, null, event.fault.faultString));
}
var failureEventType:String = event.token.completionEventType != null ? event.token.completionEventType : ApiClientEvent.FAILURE_EVENT;
if (_apiEventNotifier != null) { //dispatch event via assigned dispatcher
var failureEvent:ApiClientEvent = new ApiClientEvent(failureEventType);
failureEvent.response = new Response(false, null, event.fault.faultString);
_apiEventNotifier.dispatchEvent(failureEvent);
}
}
private function getArrayEnclosure(arr:Array):String {
if (arr != null && arr.length > 0) {
var className:String = flash.utils.getQualifiedClassName(arr[0])
if (className.indexOf("::") > 0)
className = className.substr(className.indexOf("::") + 2, className.length)
return className.substring(0, 1).toLowerCase() + className.substring(1, className.length) + "s";
} else
return "";
}
}
}

View File

@ -0,0 +1,41 @@
package io.swagger.common {
import io.swagger.common.ApiUserCredentials;
/**
* @private
* Internal class for the Rest client
*/
internal class ApiUrlHelper {
private static const API_URL_KEY:String = "api_key";
private static const AUTH_TOKEN_URL_KEY:String = "auth_token";
private static const HTTP_URL_PREFIX:String = "http://";
internal static function appendTokenInfo(restUrl:String, requestHeader: Object, credentials: ApiUserCredentials): String {
//checks for the presence api credentials on client initialization and not repeated here
if(restUrl.indexOf("?") == -1){
restUrl += ( "?" + API_URL_KEY + "=" + credentials.apiToken );
}
else{
restUrl += ( "&" + API_URL_KEY + "=" + credentials.apiToken );
}
requestHeader.api_key = credentials.apiToken;
if(credentials.authToken != null && credentials.authToken != ""){
restUrl += ( "&" + AUTH_TOKEN_URL_KEY + "=" + credentials.authToken );
requestHeader.auth_token = credentials.authToken;
}
return restUrl;
}
internal static function getProxyUrl(hostName: String, proxyPath: String): String{
if (hostName(hostName.length - 1) == "/") //remove trailing slash
{
hostName = hostName.substring(0, hostName.length - 1);
}
return HTTP_URL_PREFIX + hostName + proxyPath;
}
}
}

View File

@ -0,0 +1,63 @@
package io.swagger.common {
/**
* Api account credentials.
*
*/
public class ApiUserCredentials {
/**
* An apitoken that is passed along with the requests
*/
public var apiToken:String;
/**
* A valid auth_token which could be necessary for certain operations
*/
public var authToken:String;
/**
* The userId which could be required for certain operations
*/
public var userId:Number;
/**
* The host name for the Rest API eg. api.companyName.com
*/
public var hostName:String;
/**
* The base path to the api resources - used along with the hostname
* eg. /v4
*/
public var apiPath: String;
/**
* The base path to the blazeds proxy
* eg. /v4/messagebroker/restproxy
*/
public var proxyPath: String;
/**
* If a proxy server has been set up for the services specify the URL here. This value is used when the Api is invoked with
* the value useProxy as true
*/
public var apiProxyServerUrl: String;
/**
* Constructor of ApiUserCredentials
* @param apiToken An apitoken that is passed along with the requests
* @param authToken A valid auth_token which could necessary for certain operations
* @param hostName The host name for the Rest API eg. api.companyName.com
* @param userId The userId which is required for certain operations - currently, get user lists
*/
public function ApiUserCredentials(hostName: String, apiPath: String, apiToken: String,
authToken: String = null, userId: Number = -1, apiProxyServerUrl: String="",
proxyPath: String = null) {
this.hostName = hostName;
this.apiToken = apiToken;
this.authToken = authToken;
this.userId = userId;
this.apiPath = apiPath;
this.apiProxyServerUrl = apiProxyServerUrl;
this.proxyPath = proxyPath;
}
}
}

View File

@ -0,0 +1,75 @@
package io.swagger.common
{
import io.swagger.common.ApiUserCredentials;
import flash.events.EventDispatcher;
import flash.events.IEventDispatcher;
import mx.utils.UIDUtil;
public class SwaggerApi extends EventDispatcher
{
protected var _apiUsageCredentials:ApiUserCredentials;
protected var _apiEventNotifier:EventDispatcher;
protected var _apiInvoker: ApiInvoker;
protected var _useProxyServer: Boolean = false;
/**
* Constructor for the api client
* @param apiCredentials Wrapper object for tokens and hostName required towards authentication
* @param eventDispatcher Optional event dispatcher that when provided is used by the SDK to dispatch any Response
*/
public function SwaggerApi(apiCredentials: ApiUserCredentials, eventDispatcher: EventDispatcher = null) {
super();
_apiUsageCredentials = apiCredentials;
_apiEventNotifier = eventDispatcher;
}
public function useProxyServer(value:Boolean, proxyServerUrl: String = null):void {
_useProxyServer = value;
}
protected function getApiInvoker():ApiInvoker {
if(_apiInvoker == null){
if(_apiEventNotifier == null){
_apiEventNotifier = this;
}
_apiInvoker = new ApiInvoker(_apiUsageCredentials, _apiEventNotifier, _useProxyServer);
}
return _apiInvoker;
}
protected function getUniqueId():String {
return UIDUtil.createUID();
}
/**
* Method for returning the path value
* For a string value an empty value is returned if the value is null
* @param value
* @return
*/
protected static function toPathValue(value: Object): String {
if(value is Array){
return arrayToPathValue(value as Array);
}
return value == null ? "" : value.toString();
}
/**
* Method for returning a path value
* For a list of objects a comma separated string is returned
* @param objects
* @return
*/
protected static function arrayToPathValue(objects: Array): String {
var out: String = "";
return objects.join(",");
}
}
}

View File

@ -0,0 +1,28 @@
package io.swagger.common
{
public class XMLWriter
{
public var xml:XML;
public function XMLWriter()
{
xml=<obj/>;
}
public function reset():void {
xml=new XML();
}
public function addProperty(propertyName:String, propertyValue:String):XML {
var xmlProperty:XML=<new/>
xmlProperty.setName(propertyName);
xmlProperty.appendChild(propertyValue);
xml.appendChild(xmlProperty);
return xmlProperty;
}
public function addAttribute(propertyName:String, attribute:String, attributeValue:String):void {
xml.elements(propertyName)[0].@[attribute]=attributeValue;
}
}
}

View File

@ -0,0 +1,36 @@
package io.swagger.event {
import io.swagger.event.Response;
import flash.events.Event;
/**
* Event dispatched by the SDK to communicate success events and failure events.
* If a custom dispatcher has been assigned by the consumer on the generated client then the dispatcher dispatches
* the ApiClientEvent to indicate success or failure of the invocation using the Response
*/
public class ApiClientEvent extends Event{
/**
* Event type to indicate a unsuccessful invocation
*/
public static const FAILURE_EVENT:String = "unsuccesfulInvocation";
/**
* Event type to indicate a successful invocation
*/
public static const SUCCESS_EVENT:String = "successfulInvocation";
/**
* The Response object which contains response info
*/
public var response: Response;
/**
* Any additional info
*/
public var message:String;
public function ApiClientEvent(type:String,bubbles:Boolean = false,cancelable:Boolean = false) {
super(type, bubbles, cancelable);
}
}
}

View File

@ -0,0 +1,56 @@
package io.swagger.event {
/**
* Response contains info on the result of an API invocation.
* A completion listener will expect this Response object.
*/
public class Response {
/**
* Indicates whether the invoked operation failed or succeeded
*/
public var isSuccess:Boolean;
/**
* The payload of the succesful operation eg. a Word in a WordRequest
*/
public var payload:Object;
/**
* Error message in case of failure
*/
public var errorMessage:String;
/**
* A request Id that was passed in by the user as a param when invoking the operation
*/
public var requestId:String;
private static const API_ERROR_MSG:String = "Api error response: ";
public function Response(isSuccessful: Boolean, payload: Object = null, errorMessage: String = null, requestId: String = null) {
this.isSuccess = isSuccessful;
this.payload = payload;
this.errorMessage = getFriendlyMessage(errorMessage);
}
private static function getFriendlyMessage(errorMessage: String): String{
var result: String = errorMessage;
if(errorMessage == null)
return null;
var errorCode: String;
var errorCodeArray: Array = errorMessage.match(/(?<=HTTP\/1.1 )[0-9][0-9][0-9]/);
if(errorCodeArray != null && errorCodeArray.length == 1){
errorCode = String(errorCodeArray[0]);
}
var msgArray: Array = errorMessage.match(/(?<=HTTP\/1.1 [0-9][0-9][0-9] )[^]*/);
if(msgArray != null && msgArray.length == 1){
result = API_ERROR_MSG + String(msgArray[0]);
}
return result;
}
public function toString(): String {
return "Response (requestId:" + requestId + "; isSuccess:" + isSuccess + "; errorMessage:" + errorMessage + "; payload:" + payload + ")";
}
}
}

View File

@ -0,0 +1,34 @@
package io.swagger.exception
{
public class ApiErrorCodes
{
/**
* System exception.
*/
public static const SYSTEM_EXCEPTION: Number = 0;
/**
* With Arguments as current key.
*/
public static const API_KEY_NOT_VALID: Number = 1000;
/**
* With arguments as current token value
*/
public static const AUTH_TOKEN_NOT_VALID: Number = 1001;
/**
* With arguments as input JSON and output class anme
*/
public static const ERROR_CONVERTING_JSON_TO_JAVA: Number = 1002;
/**
* With arguments as JAVA class name
*/
public static const ERROR_CONVERTING_JAVA_TO_JSON: Number = 1003;
public static const ERROR_FROM_WEBSERVICE_CALL: Number = 1004;
/**
* With arguments as current API server name
*/
public static const API_SERVER_NOT_VALID: Number = 1005;
}
}

Binary file not shown.

View File

@ -0,0 +1,146 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<application xmlns="http://ns.adobe.com/air/application/2.0">
<!-- Adobe AIR Application Descriptor File Template.
Specifies parameters for identifying, installing, and launching AIR applications.
xmlns - The Adobe AIR namespace: http://ns.adobe.com/air/application/2.0
The last segment of the namespace specifies the version
of the AIR runtime required for this application to run.
minimumPatchLevel - The minimum patch level of the AIR runtime required to run
the application. Optional.
-->
<!-- A universally unique application identifier. Must be unique across all AIR applications.
Using a reverse DNS-style name as the id is recommended. (Eg. com.example.ExampleApplication.) Required. -->
<id>AirExecutorApp</id>
<!-- Used as the filename for the application. Required. -->
<filename>AirExecutorApp</filename>
<!-- The name that is displayed in the AIR application installer.
May have multiple values for each language. See samples or xsd schema file. Optional. -->
<name>AirExecutorApp</name>
<!-- An application version designator (such as "v1", "2.5", or "Alpha 1"). Required. -->
<version>v1</version>
<!-- Description, displayed in the AIR application installer.
May have multiple values for each language. See samples or xsd schema file. Optional. -->
<!-- <description></description> -->
<!-- Copyright information. Optional -->
<!-- <copyright></copyright> -->
<!-- Publisher ID. Used if you're updating an application created prior to 1.5.3 -->
<!-- <publisherID></publisherID> -->
<!-- Settings for the application's initial window. Required. -->
<initialWindow>
<!-- The main SWF or HTML file of the application. Required. -->
<!-- Note: In Flash Builder, the SWF reference is set automatically. -->
<content>AirExecutorApp.swf</content>
<!-- The title of the main window. Optional. -->
<!-- <title></title> -->
<!-- The type of system chrome to use (either "standard" or "none"). Optional. Default standard. -->
<!-- <systemChrome></systemChrome> -->
<!-- Whether the window is transparent. Only applicable when systemChrome is none. Optional. Default false. -->
<!-- <transparent></transparent> -->
<!-- Whether the window is initially visible. Optional. Default false. -->
<!-- <visible></visible> -->
<!-- Whether the user can minimize the window. Optional. Default true. -->
<!-- <minimizable></minimizable> -->
<!-- Whether the user can maximize the window. Optional. Default true. -->
<!-- <maximizable></maximizable> -->
<!-- Whether the user can resize the window. Optional. Default true. -->
<!-- <resizable></resizable> -->
<!-- The window's initial width in pixels. Optional. -->
<!-- <width></width> -->
<!-- The window's initial height in pixels. Optional. -->
<!-- <height></height> -->
<!-- The window's initial x position. Optional. -->
<!-- <x></x> -->
<!-- The window's initial y position. Optional. -->
<!-- <y></y> -->
<!-- The window's minimum size, specified as a width/height pair in pixels, such as "400 200". Optional. -->
<!-- <minSize></minSize> -->
<!-- The window's initial maximum size, specified as a width/height pair in pixels, such as "1600 1200". Optional. -->
<!-- <maxSize></maxSize> -->
</initialWindow>
<!-- We recommend omitting the supportedProfiles element, -->
<!-- which in turn permits your application to be deployed to all -->
<!-- devices supported by AIR. If you wish to restrict deployment -->
<!-- (i.e., to only mobile devices) then add this element and list -->
<!-- only the profiles which your application does support. -->
<!-- <supportedProfiles>desktop extendedDesktop mobileDevice extendedMobileDevice</supportedProfiles> -->
<!-- The subpath of the standard default installation location to use. Optional. -->
<!-- <installFolder></installFolder> -->
<!-- The subpath of the Programs menu to use. (Ignored on operating systems without a Programs menu.) Optional. -->
<!-- <programMenuFolder></programMenuFolder> -->
<!-- The icon the system uses for the application. For at least one resolution,
specify the path to a PNG file included in the AIR package. Optional. -->
<!-- <icon>
<image16x16></image16x16>
<image32x32></image32x32>
<image48x48></image48x48>
<image128x128></image128x128>
</icon> -->
<!-- Whether the application handles the update when a user double-clicks an update version
of the AIR file (true), or the default AIR application installer handles the update (false).
Optional. Default false. -->
<!-- <customUpdateUI></customUpdateUI> -->
<!-- Whether the application can be launched when the user clicks a link in a web browser.
Optional. Default false. -->
<!-- <allowBrowserInvocation></allowBrowserInvocation> -->
<!-- Listing of file types for which the application can register. Optional. -->
<!-- <fileTypes> -->
<!-- Defines one file type. Optional. -->
<!-- <fileType> -->
<!-- The name that the system displays for the registered file type. Required. -->
<!-- <name></name> -->
<!-- The extension to register. Required. -->
<!-- <extension></extension> -->
<!-- The description of the file type. Optional. -->
<!-- <description></description> -->
<!-- The MIME content type. -->
<!-- <contentType></contentType> -->
<!-- The icon to display for the file type. Optional. -->
<!-- <icon>
<image16x16></image16x16>
<image32x32></image32x32>
<image48x48></image48x48>
<image128x128></image128x128>
</icon> -->
<!-- </fileType> -->
<!-- </fileTypes> -->
</application>

View File

@ -0,0 +1,29 @@
# Window and document title for the documentation
title=Sample app AS3 SDK API Documentation
#Path to the source folder where the .as files are located
sourcepath = ./src/main/flex
# Class-folders you want to search for classes to be included in the docs, seperated by spaces (for example ../com/ ../net/ )
# to include every .as and .mxml file within your project, just state ../
domainextensions = ./src/main/flex
# The Location of deployment library on your Computer (PC/Mac) for compiled SWC file
liboutputfolder = bin
liboutputfile = as3-sample-sdk.swc
libpath = lib
# The Location of the output folder for your generated documents
docsoutputfolder = asdoc
# The location of the test sources
testsourcepath = ./src/test/flex
# Home directory for flex sdk, change this to build for Mac or PC using # as comment
FLEX4_SDK_HOME = /usr/local/flex_sdk_4.1.0/
#FLEX4_SDK_HOME = /Applications/Adobe Flash Builder 4/sdks/4.1.0/
# The location of your asdoc.exe, change this to build for Mac or PC using # as comment
#asdoc.exe = C:/Program Files/Adobe/Flash Builder 4/sdks/3.5.0/bin/asdoc.exe
#asdoc.exe = /Applications/Adobe Flash Builder 4/sdks/3.5.0/bin/asdoc

View File

@ -0,0 +1,192 @@
<!-- Flex Library Project ASDocs -->
<project name="AS3SDKCompile" default="compile" basedir=".">
<!-- import our build properties file -->
<property file="./build.properties"/>
<property environment="env"/>
<property name="FLEX_HOME" value="${FLEX4_SDK_HOME}"/>
<property name="FLEX4_HOME" value="${FLEX4_SDK_HOME}"/>
<!--<property name="flexunit.swc" value="../lib/ext/flexunit-4.1.0_RC2-28-flex_3.5.0.12683.swc" />
<property name="flexunit-uilistener.swc" value="../lib/ext/flexunit-uilistener-4.1.0_RC2-28-flex_3.5.0.12683.swc" />
<property name="flexunit-cilistener.swc" value="../lib/ext/flexunit-cilistener-4.1.0_RC2-28-flex_3.5.0.12683.swc" />-->
<!-- Flex Ant Tasks used to perform compc and mxml compiling more info at http://labs.adobe.com/wiki/index.php/Flex_Ant_Tasks -->
<taskdef resource="flexTasks.tasks" classpath="${FLEX_HOME}/ant/lib/flexTasks.jar"/>
<target name="setup" description="perform an setup operations"/>
<!-- Execute the ASDoc Compile wich runs 3 seperate tasks in a series -->
<target name="compile" description="series of tasks to create docs and swc">
<!--<antcall target="cleanDir" description="clean the docs directory"/>-->
<!--<antcall target="asDocs" description="full build of asdocs"/>-->
<antcall target="buildSWC" description="build the SWC file"/>
</target>
<target name="deploy" description="perform an deployment operations"/>
<target name="install" description="perform an installation operations"/>
<!--
DELETE the existing output folder and files and then re-generate the output folder
-->
<target name="clean"
description="DELETE the existing output folder and files and then re-generate the output folder">
<delete dir="${basedir}/${docsoutputfolder}" failonerror="true" includeemptydirs="true"/>
<delete file="${basedir}/${liboutputfolder}/${liboutputfile}"/>
<delete dir="${basedir}/dist" failonerror="true" includeemptydirs="true"/>
<mkdir dir="${basedir}/${docsoutputfolder}"/>
</target>
<!--
Run the ASDoc executable and generate the ASDocs to the new output folder
-->
<target name="docs" description="Run the ASDoc executable and generate the ASDocs to the new output folder">
<exec executable="${FLEX_HOME}/bin/asdoc" failonerror="true">
<arg line="-doc-sources ${sourcepath}"/>
<arg line="-source-path ${sourcepath}"/>
<arg line="-footer 'Copyright Wordnik'"/>
<arg line="-package io.swagger.api 'Contains the apis which are used by clients to make calls to the services deployed'"/>
<arg line="-package io.swagger.codegen.model 'Contains common classes which encapsulate data elements required'"/>
<arg line="-package io.swagger.common 'Contains classes which are used by the api classes to invoke the deployed api like SwaggerApi - a base class, ApiUserCredentials, etc.'"/>
<arg line="-package io.swagger.event 'Results of calls made to Wordnik are returned via dispatched events. This package contains such event classes. Right now thats just ApiClientEvent and Response.'"/>
<arg line="-package io.swagger.exception 'Contains classes that encapsulate the errors generated'"/>
<arg value="-window-title"/>
<arg value="${title}"/>
<arg value="-main-title"/>
<arg value="${title}"/>
<arg value="-output"/>
<arg value="${basedir}/${docsoutputfolder}"/>
<arg value="-external-library-path"/>
<arg value="${basedir}/${libpath}"/>
</exec>
<echo>docs created</echo>
</target>
<!--
Compile the SWC file library including lib folder and the path to our classes, we use compc for library,
check the docs for Flex Ant Tasks, http://labs.adobe.com/wiki/index.php/Flex_Ant_Tasks.
-->
<target name="buildSWC" description="Compile the SWC file for the Librayr Project">
<compc output="${basedir}/${liboutputfolder}/${liboutputfile}">
<!--
Include the path to any external SWC files used in the sdk, you may have to place name of SWC (ASAXB-0.1.1.swc) at end of path.
So file path would be file="${basedir}/${libpath}/ASAXB-0.1.1.swc"
-->
<include-libraries file="${basedir}/${libpath}/"/>
<source-path path-element="${sourcepath}"/>
<keep-as3-metadata name="XmlRootNode"/>
<keep-as3-metadata name="XmlElement"/>
<keep-as3-metadata name="XmlElements"/>
<!-- include our Class packages into the build (com folder) -->
<include-sources dir="${sourcepath}" includes="*"/>
</compc>
<echo>SWC created</echo>
</target>
<target name="dist" depends="clean, buildSWC, docs">
<mkdir dir="${basedir}/dist/lib"/>
<mkdir dir="${basedir}/dist/docs"/>
<mkdir dir="${basedir}/dist/sample"/>
<copy file="${basedir}/${liboutputfolder}/${liboutputfile}" todir="${basedir}/dist/lib/">
</copy>
<copy todir="${basedir}/dist/docs/">
<fileset dir="${basedir}/asdoc"/>
</copy>
<zip destfile="sample-as3-sdk.zip" basedir="${basedir}/dist"/>
</target>
<!-- Compiles and creates a test app that can be run using the adl - AIR Debug Launcher from command line
Note: For the output file to be executed an xml file is needed which points to this output swf - this is not
generated here
-->
<target name="compile-test" depends="buildSWC">
<property name="FLEX_HOME" value="${FLEX4_SDK_HOME}"/>
<mxmlc
static-rsls="false"
fork="true"
maxmemory="512m"
file="${testsourcepath}/AirExecutorApp.mxml"
output="${basedir}/${liboutputfolder}/AirExecutorApp.swf"
warnings="false"
configname="air"
locale="en_US">
<load-config filename="${FLEX4_HOME}/frameworks/air-config.xml"/>
<source-path path-element="${FLEX_HOME}/frameworks"/>
<compiler.debug>true</compiler.debug>
<source-path path-element="${testsourcepath}"/>
<!--<source-path path-element="${APP_ROOT}/locale/{locale}" />-->
<library-path dir="${FLEX_HOME}/frameworks/libs" append="true">
<include name="*.swc"/>
</library-path>
<library-path dir="${FLEX_HOME}/frameworks/libs/air" append="true">
<include name="*.swc"/>
</library-path>
<library-path dir="${FLEX_HOME}/frameworks/locale" append="true">
<include name="{locale}"/>
</library-path>
<library-path dir="${basedir}/${libpath}" append="true">
<include name="*.swc"/>
</library-path>
<library-path dir="${basedir}/${liboutputfolder}" append="true">
<include name="*.swc"/>
</library-path>
<library-path dir="${basedir}/${libpath}/ext" append="true">
<include name="*.swc"/>
</library-path>
<verbose-stacktraces>true</verbose-stacktraces>
</mxmlc>
</target>
<target name="do-test">
<exec executable="${FLEX_HOME}/bin/adl" failonerror="true">
<arg value="${basedir}/bin/AirExecutorApp-app.xml"/>
</exec>
</target>
<target name="test" depends="compile-test, do-test">
</target>
</project>

View File

@ -0,0 +1,146 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<application xmlns="http://ns.adobe.com/air/application/2.0">
<!-- Adobe AIR Application Descriptor File Template.
Specifies parameters for identifying, installing, and launching AIR applications.
xmlns - The Adobe AIR namespace: http://ns.adobe.com/air/application/2.0
The last segment of the namespace specifies the version
of the AIR runtime required for this application to run.
minimumPatchLevel - The minimum patch level of the AIR runtime required to run
the application. Optional.
-->
<!-- A universally unique application identifier. Must be unique across all AIR applications.
Using a reverse DNS-style name as the id is recommended. (Eg. com.example.ExampleApplication.) Required. -->
<id>AirExecutorApp</id>
<!-- Used as the filename for the application. Required. -->
<filename>AirExecutorApp</filename>
<!-- The name that is displayed in the AIR application installer.
May have multiple values for each language. See samples or xsd schema file. Optional. -->
<name>AirExecutorApp</name>
<!-- An application version designator (such as "v1", "2.5", or "Alpha 1"). Required. -->
<version>v1</version>
<!-- Description, displayed in the AIR application installer.
May have multiple values for each language. See samples or xsd schema file. Optional. -->
<!-- <description></description> -->
<!-- Copyright information. Optional -->
<!-- <copyright></copyright> -->
<!-- Publisher ID. Used if you're updating an application created prior to 1.5.3 -->
<!-- <publisherID></publisherID> -->
<!-- Settings for the application's initial window. Required. -->
<initialWindow>
<!-- The main SWF or HTML file of the application. Required. -->
<!-- Note: In Flash Builder, the SWF reference is set automatically. -->
<content>AirExecutorApp.swf</content>
<!-- The title of the main window. Optional. -->
<!-- <title></title> -->
<!-- The type of system chrome to use (either "standard" or "none"). Optional. Default standard. -->
<!-- <systemChrome></systemChrome> -->
<!-- Whether the window is transparent. Only applicable when systemChrome is none. Optional. Default false. -->
<!-- <transparent></transparent> -->
<!-- Whether the window is initially visible. Optional. Default false. -->
<!-- <visible></visible> -->
<!-- Whether the user can minimize the window. Optional. Default true. -->
<!-- <minimizable></minimizable> -->
<!-- Whether the user can maximize the window. Optional. Default true. -->
<!-- <maximizable></maximizable> -->
<!-- Whether the user can resize the window. Optional. Default true. -->
<!-- <resizable></resizable> -->
<!-- The window's initial width in pixels. Optional. -->
<!-- <width></width> -->
<!-- The window's initial height in pixels. Optional. -->
<!-- <height></height> -->
<!-- The window's initial x position. Optional. -->
<!-- <x></x> -->
<!-- The window's initial y position. Optional. -->
<!-- <y></y> -->
<!-- The window's minimum size, specified as a width/height pair in pixels, such as "400 200". Optional. -->
<!-- <minSize></minSize> -->
<!-- The window's initial maximum size, specified as a width/height pair in pixels, such as "1600 1200". Optional. -->
<!-- <maxSize></maxSize> -->
</initialWindow>
<!-- We recommend omitting the supportedProfiles element, -->
<!-- which in turn permits your application to be deployed to all -->
<!-- devices supported by AIR. If you wish to restrict deployment -->
<!-- (i.e., to only mobile devices) then add this element and list -->
<!-- only the profiles which your application does support. -->
<!-- <supportedProfiles>desktop extendedDesktop mobileDevice extendedMobileDevice</supportedProfiles> -->
<!-- The subpath of the standard default installation location to use. Optional. -->
<!-- <installFolder></installFolder> -->
<!-- The subpath of the Programs menu to use. (Ignored on operating systems without a Programs menu.) Optional. -->
<!-- <programMenuFolder></programMenuFolder> -->
<!-- The icon the system uses for the application. For at least one resolution,
specify the path to a PNG file included in the AIR package. Optional. -->
<!-- <icon>
<image16x16></image16x16>
<image32x32></image32x32>
<image48x48></image48x48>
<image128x128></image128x128>
</icon> -->
<!-- Whether the application handles the update when a user double-clicks an update version
of the AIR file (true), or the default AIR application installer handles the update (false).
Optional. Default false. -->
<!-- <customUpdateUI></customUpdateUI> -->
<!-- Whether the application can be launched when the user clicks a link in a web browser.
Optional. Default false. -->
<!-- <allowBrowserInvocation></allowBrowserInvocation> -->
<!-- Listing of file types for which the application can register. Optional. -->
<!-- <fileTypes> -->
<!-- Defines one file type. Optional. -->
<!-- <fileType> -->
<!-- The name that the system displays for the registered file type. Required. -->
<!-- <name></name> -->
<!-- The extension to register. Required. -->
<!-- <extension></extension> -->
<!-- The description of the file type. Optional. -->
<!-- <description></description> -->
<!-- The MIME content type. -->
<!-- <contentType></contentType> -->
<!-- The icon to display for the file type. Optional. -->
<!-- <icon>
<image16x16></image16x16>
<image32x32></image32x32>
<image48x48></image48x48>
<image128x128></image128x128>
</icon> -->
<!-- </fileType> -->
<!-- </fileTypes> -->
</application>

View File

@ -0,0 +1,29 @@
# Window and document title for the documentation
title=Sample app AS3 SDK API Documentation
#Path to the source folder where the .as files are located
sourcepath = ./src/main/flex
# Class-folders you want to search for classes to be included in the docs, seperated by spaces (for example ../com/ ../net/ )
# to include every .as and .mxml file within your project, just state ../
domainextensions = ./src/main/flex
# The Location of deployment library on your Computer (PC/Mac) for compiled SWC file
liboutputfolder = bin
liboutputfile = as3-sample-sdk.swc
libpath = lib
# The Location of the output folder for your generated documents
docsoutputfolder = asdoc
# The location of the test sources
testsourcepath = ./src/test/flex
# Home directory for flex sdk, change this to build for Mac or PC using # as comment
FLEX4_SDK_HOME = /usr/local/flex_sdk_4.1.0/
#FLEX4_SDK_HOME = /Applications/Adobe Flash Builder 4/sdks/4.1.0/
# The location of your asdoc.exe, change this to build for Mac or PC using # as comment
#asdoc.exe = C:/Program Files/Adobe/Flash Builder 4/sdks/3.5.0/bin/asdoc.exe
#asdoc.exe = /Applications/Adobe Flash Builder 4/sdks/3.5.0/bin/asdoc

View File

@ -0,0 +1,192 @@
<!-- Flex Library Project ASDocs -->
<project name="AS3SDKCompile" default="compile" basedir=".">
<!-- import our build properties file -->
<property file="./build.properties"/>
<property environment="env"/>
<property name="FLEX_HOME" value="${FLEX4_SDK_HOME}"/>
<property name="FLEX4_HOME" value="${FLEX4_SDK_HOME}"/>
<!--<property name="flexunit.swc" value="../lib/ext/flexunit-4.1.0_RC2-28-flex_3.5.0.12683.swc" />
<property name="flexunit-uilistener.swc" value="../lib/ext/flexunit-uilistener-4.1.0_RC2-28-flex_3.5.0.12683.swc" />
<property name="flexunit-cilistener.swc" value="../lib/ext/flexunit-cilistener-4.1.0_RC2-28-flex_3.5.0.12683.swc" />-->
<!-- Flex Ant Tasks used to perform compc and mxml compiling more info at http://labs.adobe.com/wiki/index.php/Flex_Ant_Tasks -->
<taskdef resource="flexTasks.tasks" classpath="${FLEX_HOME}/ant/lib/flexTasks.jar"/>
<target name="setup" description="perform an setup operations"/>
<!-- Execute the ASDoc Compile wich runs 3 seperate tasks in a series -->
<target name="compile" description="series of tasks to create docs and swc">
<!--<antcall target="cleanDir" description="clean the docs directory"/>-->
<!--<antcall target="asDocs" description="full build of asdocs"/>-->
<antcall target="buildSWC" description="build the SWC file"/>
</target>
<target name="deploy" description="perform an deployment operations"/>
<target name="install" description="perform an installation operations"/>
<!--
DELETE the existing output folder and files and then re-generate the output folder
-->
<target name="clean"
description="DELETE the existing output folder and files and then re-generate the output folder">
<delete dir="${basedir}/${docsoutputfolder}" failonerror="true" includeemptydirs="true"/>
<delete file="${basedir}/${liboutputfolder}/${liboutputfile}"/>
<delete dir="${basedir}/dist" failonerror="true" includeemptydirs="true"/>
<mkdir dir="${basedir}/${docsoutputfolder}"/>
</target>
<!--
Run the ASDoc executable and generate the ASDocs to the new output folder
-->
<target name="docs" description="Run the ASDoc executable and generate the ASDocs to the new output folder">
<exec executable="${FLEX_HOME}/bin/asdoc" failonerror="true">
<arg line="-doc-sources ${sourcepath}"/>
<arg line="-source-path ${sourcepath}"/>
<arg line="-footer 'Copyright Wordnik'"/>
<arg line="-package io.swagger.api 'Contains the apis which are used by clients to make calls to the services deployed'"/>
<arg line="-package io.swagger.codegen.model 'Contains common classes which encapsulate data elements required'"/>
<arg line="-package io.swagger.common 'Contains classes which are used by the api classes to invoke the deployed api like SwaggerApi - a base class, ApiUserCredentials, etc.'"/>
<arg line="-package io.swagger.event 'Results of calls made to Wordnik are returned via dispatched events. This package contains such event classes. Right now thats just ApiClientEvent and Response.'"/>
<arg line="-package io.swagger.exception 'Contains classes that encapsulate the errors generated'"/>
<arg value="-window-title"/>
<arg value="${title}"/>
<arg value="-main-title"/>
<arg value="${title}"/>
<arg value="-output"/>
<arg value="${basedir}/${docsoutputfolder}"/>
<arg value="-external-library-path"/>
<arg value="${basedir}/${libpath}"/>
</exec>
<echo>docs created</echo>
</target>
<!--
Compile the SWC file library including lib folder and the path to our classes, we use compc for library,
check the docs for Flex Ant Tasks, http://labs.adobe.com/wiki/index.php/Flex_Ant_Tasks.
-->
<target name="buildSWC" description="Compile the SWC file for the Librayr Project">
<compc output="${basedir}/${liboutputfolder}/${liboutputfile}">
<!--
Include the path to any external SWC files used in the sdk, you may have to place name of SWC (ASAXB-0.1.1.swc) at end of path.
So file path would be file="${basedir}/${libpath}/ASAXB-0.1.1.swc"
-->
<include-libraries file="${basedir}/${libpath}/"/>
<source-path path-element="${sourcepath}"/>
<keep-as3-metadata name="XmlRootNode"/>
<keep-as3-metadata name="XmlElement"/>
<keep-as3-metadata name="XmlElements"/>
<!-- include our Class packages into the build (com folder) -->
<include-sources dir="${sourcepath}" includes="*"/>
</compc>
<echo>SWC created</echo>
</target>
<target name="dist" depends="clean, buildSWC, docs">
<mkdir dir="${basedir}/dist/lib"/>
<mkdir dir="${basedir}/dist/docs"/>
<mkdir dir="${basedir}/dist/sample"/>
<copy file="${basedir}/${liboutputfolder}/${liboutputfile}" todir="${basedir}/dist/lib/">
</copy>
<copy todir="${basedir}/dist/docs/">
<fileset dir="${basedir}/asdoc"/>
</copy>
<zip destfile="sample-as3-sdk.zip" basedir="${basedir}/dist"/>
</target>
<!-- Compiles and creates a test app that can be run using the adl - AIR Debug Launcher from command line
Note: For the output file to be executed an xml file is needed which points to this output swf - this is not
generated here
-->
<target name="compile-test" depends="buildSWC">
<property name="FLEX_HOME" value="${FLEX4_SDK_HOME}"/>
<mxmlc
static-rsls="false"
fork="true"
maxmemory="512m"
file="${testsourcepath}/AirExecutorApp.mxml"
output="${basedir}/${liboutputfolder}/AirExecutorApp.swf"
warnings="false"
configname="air"
locale="en_US">
<load-config filename="${FLEX4_HOME}/frameworks/air-config.xml"/>
<source-path path-element="${FLEX_HOME}/frameworks"/>
<compiler.debug>true</compiler.debug>
<source-path path-element="${testsourcepath}"/>
<!--<source-path path-element="${APP_ROOT}/locale/{locale}" />-->
<library-path dir="${FLEX_HOME}/frameworks/libs" append="true">
<include name="*.swc"/>
</library-path>
<library-path dir="${FLEX_HOME}/frameworks/libs/air" append="true">
<include name="*.swc"/>
</library-path>
<library-path dir="${FLEX_HOME}/frameworks/locale" append="true">
<include name="{locale}"/>
</library-path>
<library-path dir="${basedir}/${libpath}" append="true">
<include name="*.swc"/>
</library-path>
<library-path dir="${basedir}/${liboutputfolder}" append="true">
<include name="*.swc"/>
</library-path>
<library-path dir="${basedir}/${libpath}/ext" append="true">
<include name="*.swc"/>
</library-path>
<verbose-stacktraces>true</verbose-stacktraces>
</mxmlc>
</target>
<target name="do-test">
<exec executable="${FLEX_HOME}/bin/adl" failonerror="true">
<arg value="${basedir}/bin/AirExecutorApp-app.xml"/>
</exec>
</target>
<target name="test" depends="compile-test, do-test">
</target>
</project>

View File

@ -0,0 +1,276 @@
package io.swagger/client/api {
import io.swagger.common.ApiInvoker;
import io.swagger.exception.ApiErrorCodes;
import io.swagger.exception.ApiError;
import io.swagger.common.ApiUserCredentials;
import io.swagger.event.Response;
import io.swagger.common.SwaggerApi;
import io.swagger/client/model.Pet;
import java.io.File;
import mx.rpc.AsyncToken;
import mx.utils.UIDUtil;
import flash.utils.Dictionary;
import flash.events.EventDispatcher;
public class PetApi extends SwaggerApi {
/**
* Constructor for the PetApi api client
* @param apiCredentials Wrapper object for tokens and hostName required towards authentication
* @param eventDispatcher Optional event dispatcher that when provided is used by the SDK to dispatch any Response
*/
public function PetApi(apiCredentials: ApiUserCredentials, eventDispatcher: EventDispatcher = null) {
super(apiCredentials, eventDispatcher);
}
public static const event_update_pet: String = "update_pet";
public static const event_add_pet: String = "add_pet";
public static const event_find_pets_by_status: String = "find_pets_by_status";
public static const event_find_pets_by_tags: String = "find_pets_by_tags";
public static const event_get_pet_by_id: String = "get_pet_by_id";
public static const event_update_pet_with_form: String = "update_pet_with_form";
public static const event_delete_pet: String = "delete_pet";
public static const event_upload_file: String = "upload_file";
/*
* Returns void
*/
public function update_pet (body: Pet): String {
// create path and map variables
var path: String = "/pet".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "PUT", queryParams, io.swagger.codegen.CodegenParameter@30f97aff, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "update_pet";
token.returnType = null ;
return requestId;
}
/*
* Returns void
*/
public function add_pet (body: Pet): String {
// create path and map variables
var path: String = "/pet".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "POST", queryParams, io.swagger.codegen.CodegenParameter@4afa1477, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "add_pet";
token.returnType = null ;
return requestId;
}
/*
* Returns Array[Pet]
*/
public function find_pets_by_status (status: Array[String] = available): String {
// create path and map variables
var path: String = "/pet/findByStatus".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
if("null" != String(status))
queryParams["status"] = toPathValue(status);
var token:AsyncToken = getApiInvoker().invokeAPI(path, "GET", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "find_pets_by_status";
token.returnType = Array[Pet];
return requestId;
}
/*
* Returns Array[Pet]
*/
public function find_pets_by_tags (tags: Array[String]): String {
// create path and map variables
var path: String = "/pet/findByTags".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
if("null" != String(tags))
queryParams["tags"] = toPathValue(tags);
var token:AsyncToken = getApiInvoker().invokeAPI(path, "GET", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "find_pets_by_tags";
token.returnType = Array[Pet];
return requestId;
}
/*
* Returns Pet
*/
public function get_pet_by_id (petId: Number): String {
// create path and map variables
var path: String = "/pet/{petId}".replace(/{format}/g,"xml").replace("{" + "petId" + "}", getApiInvoker().escapeString(petId));
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "GET", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "get_pet_by_id";
token.returnType = Pet;
return requestId;
}
/*
* Returns void
*/
public function update_pet_with_form (petId: String, name: String, status: String): String {
// create path and map variables
var path: String = "/pet/{petId}".replace(/{format}/g,"xml").replace("{" + "petId" + "}", getApiInvoker().escapeString(petId));
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "POST", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "update_pet_with_form";
token.returnType = null ;
return requestId;
}
/*
* Returns void
*/
public function delete_pet (petId: Number, apiKey: String): String {
// create path and map variables
var path: String = "/pet/{petId}".replace(/{format}/g,"xml").replace("{" + "petId" + "}", getApiInvoker().escapeString(petId));
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
headerParams["apiKey"] = toPathValue(apiKey);
var token:AsyncToken = getApiInvoker().invokeAPI(path, "DELETE", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "delete_pet";
token.returnType = null ;
return requestId;
}
/*
* Returns void
*/
public function upload_file (petId: Number, additionalMetadata: String, file: File): String {
// create path and map variables
var path: String = "/pet/{petId}/uploadImage".replace(/{format}/g,"xml").replace("{" + "petId" + "}", getApiInvoker().escapeString(petId));
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "POST", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "upload_file";
token.returnType = null ;
return requestId;
}
}
}

View File

@ -0,0 +1,276 @@
package io.swagger/client/api {
import io.swagger.common.ApiInvoker;
import io.swagger.exception.ApiErrorCodes;
import io.swagger.exception.ApiError;
import io.swagger.common.ApiUserCredentials;
import io.swagger.event.Response;
import io.swagger.common.SwaggerApi;
import io.swagger/client/model.Pet;
import java.io.File;
import mx.rpc.AsyncToken;
import mx.utils.UIDUtil;
import flash.utils.Dictionary;
import flash.events.EventDispatcher;
public class PetApi extends SwaggerApi {
/**
* Constructor for the PetApi api client
* @param apiCredentials Wrapper object for tokens and hostName required towards authentication
* @param eventDispatcher Optional event dispatcher that when provided is used by the SDK to dispatch any Response
*/
public function PetApi(apiCredentials: ApiUserCredentials, eventDispatcher: EventDispatcher = null) {
super(apiCredentials, eventDispatcher);
}
public static const event_update_pet: String = "update_pet";
public static const event_add_pet: String = "add_pet";
public static const event_find_pets_by_status: String = "find_pets_by_status";
public static const event_find_pets_by_tags: String = "find_pets_by_tags";
public static const event_get_pet_by_id: String = "get_pet_by_id";
public static const event_update_pet_with_form: String = "update_pet_with_form";
public static const event_delete_pet: String = "delete_pet";
public static const event_upload_file: String = "upload_file";
/*
* Returns void
*/
public function update_pet (body: Pet): String {
// create path and map variables
var path: String = "/pet".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "PUT", queryParams, io.swagger.codegen.CodegenParameter@4afa1477, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "update_pet";
token.returnType = null ;
return requestId;
}
/*
* Returns void
*/
public function add_pet (body: Pet): String {
// create path and map variables
var path: String = "/pet".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "POST", queryParams, io.swagger.codegen.CodegenParameter@6855b715, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "add_pet";
token.returnType = null ;
return requestId;
}
/*
* Returns Array[Pet]
*/
public function find_pets_by_status (status: Array[String] = available): String {
// create path and map variables
var path: String = "/pet/findByStatus".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
if("null" != String(status))
queryParams["status"] = toPathValue(status);
var token:AsyncToken = getApiInvoker().invokeAPI(path, "GET", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "find_pets_by_status";
token.returnType = Array[Pet];
return requestId;
}
/*
* Returns Array[Pet]
*/
public function find_pets_by_tags (tags: Array[String]): String {
// create path and map variables
var path: String = "/pet/findByTags".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
if("null" != String(tags))
queryParams["tags"] = toPathValue(tags);
var token:AsyncToken = getApiInvoker().invokeAPI(path, "GET", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "find_pets_by_tags";
token.returnType = Array[Pet];
return requestId;
}
/*
* Returns Pet
*/
public function get_pet_by_id (petId: Number): String {
// create path and map variables
var path: String = "/pet/{petId}".replace(/{format}/g,"xml").replace("{" + "petId" + "}", getApiInvoker().escapeString(petId));
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "GET", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "get_pet_by_id";
token.returnType = Pet;
return requestId;
}
/*
* Returns void
*/
public function update_pet_with_form (petId: String, name: String, status: String): String {
// create path and map variables
var path: String = "/pet/{petId}".replace(/{format}/g,"xml").replace("{" + "petId" + "}", getApiInvoker().escapeString(petId));
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "POST", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "update_pet_with_form";
token.returnType = null ;
return requestId;
}
/*
* Returns void
*/
public function delete_pet (petId: Number, apiKey: String): String {
// create path and map variables
var path: String = "/pet/{petId}".replace(/{format}/g,"xml").replace("{" + "petId" + "}", getApiInvoker().escapeString(petId));
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
headerParams["apiKey"] = toPathValue(apiKey);
var token:AsyncToken = getApiInvoker().invokeAPI(path, "DELETE", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "delete_pet";
token.returnType = null ;
return requestId;
}
/*
* Returns void
*/
public function upload_file (petId: Number, additionalMetadata: String, file: File): String {
// create path and map variables
var path: String = "/pet/{petId}/uploadImage".replace(/{format}/g,"xml").replace("{" + "petId" + "}", getApiInvoker().escapeString(petId));
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "POST", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "upload_file";
token.returnType = null ;
return requestId;
}
}
}

View File

@ -0,0 +1,151 @@
package io.swagger/client/api {
import io.swagger.common.ApiInvoker;
import io.swagger.exception.ApiErrorCodes;
import io.swagger.exception.ApiError;
import io.swagger.common.ApiUserCredentials;
import io.swagger.event.Response;
import io.swagger.common.SwaggerApi;
import io.swagger/client/model.Dictionary;
import io.swagger/client/model.Order;
import mx.rpc.AsyncToken;
import mx.utils.UIDUtil;
import flash.utils.Dictionary;
import flash.events.EventDispatcher;
public class StoreApi extends SwaggerApi {
/**
* Constructor for the StoreApi api client
* @param apiCredentials Wrapper object for tokens and hostName required towards authentication
* @param eventDispatcher Optional event dispatcher that when provided is used by the SDK to dispatch any Response
*/
public function StoreApi(apiCredentials: ApiUserCredentials, eventDispatcher: EventDispatcher = null) {
super(apiCredentials, eventDispatcher);
}
public static const event_get_inventory: String = "get_inventory";
public static const event_place_order: String = "place_order";
public static const event_get_order_by_id: String = "get_order_by_id";
public static const event_delete_order: String = "delete_order";
/*
* Returns Dictionary(str, Number)
*/
public function get_inventory (): String {
// create path and map variables
var path: String = "/store/inventory".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "GET", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "get_inventory";
token.returnType = Dictionary(str, Number);
return requestId;
}
/*
* Returns Order
*/
public function place_order (body: Order): String {
// create path and map variables
var path: String = "/store/order".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "POST", queryParams, io.swagger.codegen.CodegenParameter@6855b715, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "place_order";
token.returnType = Order;
return requestId;
}
/*
* Returns Order
*/
public function get_order_by_id (orderId: String): String {
// create path and map variables
var path: String = "/store/order/{orderId}".replace(/{format}/g,"xml").replace("{" + "orderId" + "}", getApiInvoker().escapeString(orderId));
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "GET", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "get_order_by_id";
token.returnType = Order;
return requestId;
}
/*
* Returns void
*/
public function delete_order (orderId: String): String {
// create path and map variables
var path: String = "/store/order/{orderId}".replace(/{format}/g,"xml").replace("{" + "orderId" + "}", getApiInvoker().escapeString(orderId));
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "DELETE", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "delete_order";
token.returnType = null ;
return requestId;
}
}
}

View File

@ -0,0 +1,151 @@
package io.swagger/client/api {
import io.swagger.common.ApiInvoker;
import io.swagger.exception.ApiErrorCodes;
import io.swagger.exception.ApiError;
import io.swagger.common.ApiUserCredentials;
import io.swagger.event.Response;
import io.swagger.common.SwaggerApi;
import io.swagger/client/model.Dictionary;
import io.swagger/client/model.Order;
import mx.rpc.AsyncToken;
import mx.utils.UIDUtil;
import flash.utils.Dictionary;
import flash.events.EventDispatcher;
public class StoreApi extends SwaggerApi {
/**
* Constructor for the StoreApi api client
* @param apiCredentials Wrapper object for tokens and hostName required towards authentication
* @param eventDispatcher Optional event dispatcher that when provided is used by the SDK to dispatch any Response
*/
public function StoreApi(apiCredentials: ApiUserCredentials, eventDispatcher: EventDispatcher = null) {
super(apiCredentials, eventDispatcher);
}
public static const event_get_inventory: String = "get_inventory";
public static const event_place_order: String = "place_order";
public static const event_get_order_by_id: String = "get_order_by_id";
public static const event_delete_order: String = "delete_order";
/*
* Returns Dictionary(str, Number)
*/
public function get_inventory (): String {
// create path and map variables
var path: String = "/store/inventory".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "GET", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "get_inventory";
token.returnType = Dictionary(str, Number);
return requestId;
}
/*
* Returns Order
*/
public function place_order (body: Order): String {
// create path and map variables
var path: String = "/store/order".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "POST", queryParams, io.swagger.codegen.CodegenParameter@5366f936, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "place_order";
token.returnType = Order;
return requestId;
}
/*
* Returns Order
*/
public function get_order_by_id (orderId: String): String {
// create path and map variables
var path: String = "/store/order/{orderId}".replace(/{format}/g,"xml").replace("{" + "orderId" + "}", getApiInvoker().escapeString(orderId));
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "GET", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "get_order_by_id";
token.returnType = Order;
return requestId;
}
/*
* Returns void
*/
public function delete_order (orderId: String): String {
// create path and map variables
var path: String = "/store/order/{orderId}".replace(/{format}/g,"xml").replace("{" + "orderId" + "}", getApiInvoker().escapeString(orderId));
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "DELETE", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "delete_order";
token.returnType = null ;
return requestId;
}
}
}

View File

@ -0,0 +1,275 @@
package io.swagger/client/api {
import io.swagger.common.ApiInvoker;
import io.swagger.exception.ApiErrorCodes;
import io.swagger.exception.ApiError;
import io.swagger.common.ApiUserCredentials;
import io.swagger.event.Response;
import io.swagger.common.SwaggerApi;
import io.swagger/client/model.User;
import java.util.List;
import mx.rpc.AsyncToken;
import mx.utils.UIDUtil;
import flash.utils.Dictionary;
import flash.events.EventDispatcher;
public class UserApi extends SwaggerApi {
/**
* Constructor for the UserApi api client
* @param apiCredentials Wrapper object for tokens and hostName required towards authentication
* @param eventDispatcher Optional event dispatcher that when provided is used by the SDK to dispatch any Response
*/
public function UserApi(apiCredentials: ApiUserCredentials, eventDispatcher: EventDispatcher = null) {
super(apiCredentials, eventDispatcher);
}
public static const event_create_user: String = "create_user";
public static const event_create_users_with_array_input: String = "create_users_with_array_input";
public static const event_create_users_with_list_input: String = "create_users_with_list_input";
public static const event_login_user: String = "login_user";
public static const event_logout_user: String = "logout_user";
public static const event_get_user_by_name: String = "get_user_by_name";
public static const event_update_user: String = "update_user";
public static const event_delete_user: String = "delete_user";
/*
* Returns void
*/
public function create_user (body: User): String {
// create path and map variables
var path: String = "/user".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "POST", queryParams, io.swagger.codegen.CodegenParameter@21668d9, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "create_user";
token.returnType = null ;
return requestId;
}
/*
* Returns void
*/
public function create_users_with_array_input (body: Array[User]): String {
// create path and map variables
var path: String = "/user/createWithArray".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "POST", queryParams, io.swagger.codegen.CodegenParameter@d3d7fa1, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "create_users_with_array_input";
token.returnType = null ;
return requestId;
}
/*
* Returns void
*/
public function create_users_with_list_input (body: Array[User]): String {
// create path and map variables
var path: String = "/user/createWithList".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "POST", queryParams, io.swagger.codegen.CodegenParameter@408629d1, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "create_users_with_list_input";
token.returnType = null ;
return requestId;
}
/*
* Returns String
*/
public function login_user (username: String, password: String): String {
// create path and map variables
var path: String = "/user/login".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
if("null" != String(username))
queryParams["username"] = toPathValue(username);
if("null" != String(password))
queryParams["password"] = toPathValue(password);
var token:AsyncToken = getApiInvoker().invokeAPI(path, "GET", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "login_user";
token.returnType = String;
return requestId;
}
/*
* Returns void
*/
public function logout_user (): String {
// create path and map variables
var path: String = "/user/logout".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "GET", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "logout_user";
token.returnType = null ;
return requestId;
}
/*
* Returns User
*/
public function get_user_by_name (username: String): String {
// create path and map variables
var path: String = "/user/{username}".replace(/{format}/g,"xml").replace("{" + "username" + "}", getApiInvoker().escapeString(username));
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "GET", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "get_user_by_name";
token.returnType = User;
return requestId;
}
/*
* Returns void
*/
public function update_user (username: String, body: User): String {
// create path and map variables
var path: String = "/user/{username}".replace(/{format}/g,"xml").replace("{" + "username" + "}", getApiInvoker().escapeString(username));
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "PUT", queryParams, io.swagger.codegen.CodegenParameter@2823796f, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "update_user";
token.returnType = null ;
return requestId;
}
/*
* Returns void
*/
public function delete_user (username: String): String {
// create path and map variables
var path: String = "/user/{username}".replace(/{format}/g,"xml").replace("{" + "username" + "}", getApiInvoker().escapeString(username));
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "DELETE", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "delete_user";
token.returnType = null ;
return requestId;
}
}
}

View File

@ -0,0 +1,275 @@
package io.swagger/client/api {
import io.swagger.common.ApiInvoker;
import io.swagger.exception.ApiErrorCodes;
import io.swagger.exception.ApiError;
import io.swagger.common.ApiUserCredentials;
import io.swagger.event.Response;
import io.swagger.common.SwaggerApi;
import io.swagger/client/model.User;
import java.util.List;
import mx.rpc.AsyncToken;
import mx.utils.UIDUtil;
import flash.utils.Dictionary;
import flash.events.EventDispatcher;
public class UserApi extends SwaggerApi {
/**
* Constructor for the UserApi api client
* @param apiCredentials Wrapper object for tokens and hostName required towards authentication
* @param eventDispatcher Optional event dispatcher that when provided is used by the SDK to dispatch any Response
*/
public function UserApi(apiCredentials: ApiUserCredentials, eventDispatcher: EventDispatcher = null) {
super(apiCredentials, eventDispatcher);
}
public static const event_create_user: String = "create_user";
public static const event_create_users_with_array_input: String = "create_users_with_array_input";
public static const event_create_users_with_list_input: String = "create_users_with_list_input";
public static const event_login_user: String = "login_user";
public static const event_logout_user: String = "logout_user";
public static const event_get_user_by_name: String = "get_user_by_name";
public static const event_update_user: String = "update_user";
public static const event_delete_user: String = "delete_user";
/*
* Returns void
*/
public function create_user (body: User): String {
// create path and map variables
var path: String = "/user".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "POST", queryParams, io.swagger.codegen.CodegenParameter@d3d7fa1, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "create_user";
token.returnType = null ;
return requestId;
}
/*
* Returns void
*/
public function create_users_with_array_input (body: Array[User]): String {
// create path and map variables
var path: String = "/user/createWithArray".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "POST", queryParams, io.swagger.codegen.CodegenParameter@408629d1, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "create_users_with_array_input";
token.returnType = null ;
return requestId;
}
/*
* Returns void
*/
public function create_users_with_list_input (body: Array[User]): String {
// create path and map variables
var path: String = "/user/createWithList".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "POST", queryParams, io.swagger.codegen.CodegenParameter@2823796f, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "create_users_with_list_input";
token.returnType = null ;
return requestId;
}
/*
* Returns String
*/
public function login_user (username: String, password: String): String {
// create path and map variables
var path: String = "/user/login".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
if("null" != String(username))
queryParams["username"] = toPathValue(username);
if("null" != String(password))
queryParams["password"] = toPathValue(password);
var token:AsyncToken = getApiInvoker().invokeAPI(path, "GET", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "login_user";
token.returnType = String;
return requestId;
}
/*
* Returns void
*/
public function logout_user (): String {
// create path and map variables
var path: String = "/user/logout".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "GET", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "logout_user";
token.returnType = null ;
return requestId;
}
/*
* Returns User
*/
public function get_user_by_name (username: String): String {
// create path and map variables
var path: String = "/user/{username}".replace(/{format}/g,"xml").replace("{" + "username" + "}", getApiInvoker().escapeString(username));
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "GET", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "get_user_by_name";
token.returnType = User;
return requestId;
}
/*
* Returns void
*/
public function update_user (username: String, body: User): String {
// create path and map variables
var path: String = "/user/{username}".replace(/{format}/g,"xml").replace("{" + "username" + "}", getApiInvoker().escapeString(username));
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "PUT", queryParams, io.swagger.codegen.CodegenParameter@30f97aff, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "update_user";
token.returnType = null ;
return requestId;
}
/*
* Returns void
*/
public function delete_user (username: String): String {
// create path and map variables
var path: String = "/user/{username}".replace(/{format}/g,"xml").replace("{" + "username" + "}", getApiInvoker().escapeString(username));
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "DELETE", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "delete_user";
token.returnType = null ;
return requestId;
}
}
}

View File

@ -0,0 +1,276 @@
package io.swagger/client/api {
import io.swagger.common.ApiInvoker;
import io.swagger.exception.ApiErrorCodes;
import io.swagger.exception.ApiError;
import io.swagger.common.ApiUserCredentials;
import io.swagger.event.Response;
import io.swagger.common.SwaggerApi;
import io.swagger/client/model.Pet;
import java.io.File;
import mx.rpc.AsyncToken;
import mx.utils.UIDUtil;
import flash.utils.Dictionary;
import flash.events.EventDispatcher;
public class PetApi extends SwaggerApi {
/**
* Constructor for the PetApi api client
* @param apiCredentials Wrapper object for tokens and hostName required towards authentication
* @param eventDispatcher Optional event dispatcher that when provided is used by the SDK to dispatch any Response
*/
public function PetApi(apiCredentials: ApiUserCredentials, eventDispatcher: EventDispatcher = null) {
super(apiCredentials, eventDispatcher);
}
public static const event_update_pet: String = "update_pet";
public static const event_add_pet: String = "add_pet";
public static const event_find_pets_by_status: String = "find_pets_by_status";
public static const event_find_pets_by_tags: String = "find_pets_by_tags";
public static const event_get_pet_by_id: String = "get_pet_by_id";
public static const event_update_pet_with_form: String = "update_pet_with_form";
public static const event_delete_pet: String = "delete_pet";
public static const event_upload_file: String = "upload_file";
/*
* Returns void
*/
public function update_pet (body: Pet): String {
// create path and map variables
var path: String = "/pet".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "PUT", queryParams, io.swagger.codegen.CodegenParameter@6855b715, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "update_pet";
token.returnType = null ;
return requestId;
}
/*
* Returns void
*/
public function add_pet (body: Pet): String {
// create path and map variables
var path: String = "/pet".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "POST", queryParams, io.swagger.codegen.CodegenParameter@5366f936, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "add_pet";
token.returnType = null ;
return requestId;
}
/*
* Returns Array[Pet]
*/
public function find_pets_by_status (status: Array[String] = available): String {
// create path and map variables
var path: String = "/pet/findByStatus".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
if("null" != String(status))
queryParams["status"] = toPathValue(status);
var token:AsyncToken = getApiInvoker().invokeAPI(path, "GET", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "find_pets_by_status";
token.returnType = Array[Pet];
return requestId;
}
/*
* Returns Array[Pet]
*/
public function find_pets_by_tags (tags: Array[String]): String {
// create path and map variables
var path: String = "/pet/findByTags".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
if("null" != String(tags))
queryParams["tags"] = toPathValue(tags);
var token:AsyncToken = getApiInvoker().invokeAPI(path, "GET", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "find_pets_by_tags";
token.returnType = Array[Pet];
return requestId;
}
/*
* Returns Pet
*/
public function get_pet_by_id (pet_id: Number): String {
// create path and map variables
var path: String = "/pet/{petId}".replace(/{format}/g,"xml").replace("{" + "pet_id" + "}", getApiInvoker().escapeString(pet_id));
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "GET", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "get_pet_by_id";
token.returnType = Pet;
return requestId;
}
/*
* Returns void
*/
public function update_pet_with_form (pet_id: String, name: String, status: String): String {
// create path and map variables
var path: String = "/pet/{petId}".replace(/{format}/g,"xml").replace("{" + "pet_id" + "}", getApiInvoker().escapeString(pet_id));
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "POST", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "update_pet_with_form";
token.returnType = null ;
return requestId;
}
/*
* Returns void
*/
public function delete_pet (pet_id: Number, api_key: String): String {
// create path and map variables
var path: String = "/pet/{petId}".replace(/{format}/g,"xml").replace("{" + "pet_id" + "}", getApiInvoker().escapeString(pet_id));
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
headerParams["api_key"] = toPathValue(api_key);
var token:AsyncToken = getApiInvoker().invokeAPI(path, "DELETE", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "delete_pet";
token.returnType = null ;
return requestId;
}
/*
* Returns void
*/
public function upload_file (pet_id: Number, additional_metadata: String, file: File): String {
// create path and map variables
var path: String = "/pet/{petId}/uploadImage".replace(/{format}/g,"xml").replace("{" + "pet_id" + "}", getApiInvoker().escapeString(pet_id));
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "POST", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "upload_file";
token.returnType = null ;
return requestId;
}
}
}

View File

@ -0,0 +1,151 @@
package io.swagger/client/api {
import io.swagger.common.ApiInvoker;
import io.swagger.exception.ApiErrorCodes;
import io.swagger.exception.ApiError;
import io.swagger.common.ApiUserCredentials;
import io.swagger.event.Response;
import io.swagger.common.SwaggerApi;
import io.swagger/client/model.Dictionary;
import io.swagger/client/model.Order;
import mx.rpc.AsyncToken;
import mx.utils.UIDUtil;
import flash.utils.Dictionary;
import flash.events.EventDispatcher;
public class StoreApi extends SwaggerApi {
/**
* Constructor for the StoreApi api client
* @param apiCredentials Wrapper object for tokens and hostName required towards authentication
* @param eventDispatcher Optional event dispatcher that when provided is used by the SDK to dispatch any Response
*/
public function StoreApi(apiCredentials: ApiUserCredentials, eventDispatcher: EventDispatcher = null) {
super(apiCredentials, eventDispatcher);
}
public static const event_get_inventory: String = "get_inventory";
public static const event_place_order: String = "place_order";
public static const event_get_order_by_id: String = "get_order_by_id";
public static const event_delete_order: String = "delete_order";
/*
* Returns Dictionary(str, Number)
*/
public function get_inventory (): String {
// create path and map variables
var path: String = "/store/inventory".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "GET", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "get_inventory";
token.returnType = Dictionary(str, Number);
return requestId;
}
/*
* Returns Order
*/
public function place_order (body: Order): String {
// create path and map variables
var path: String = "/store/order".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "POST", queryParams, io.swagger.codegen.CodegenParameter@d737301, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "place_order";
token.returnType = Order;
return requestId;
}
/*
* Returns Order
*/
public function get_order_by_id (order_id: String): String {
// create path and map variables
var path: String = "/store/order/{orderId}".replace(/{format}/g,"xml").replace("{" + "order_id" + "}", getApiInvoker().escapeString(order_id));
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "GET", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "get_order_by_id";
token.returnType = Order;
return requestId;
}
/*
* Returns void
*/
public function delete_order (order_id: String): String {
// create path and map variables
var path: String = "/store/order/{orderId}".replace(/{format}/g,"xml").replace("{" + "order_id" + "}", getApiInvoker().escapeString(order_id));
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "DELETE", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "delete_order";
token.returnType = null ;
return requestId;
}
}
}

View File

@ -0,0 +1,275 @@
package io.swagger/client/api {
import io.swagger.common.ApiInvoker;
import io.swagger.exception.ApiErrorCodes;
import io.swagger.exception.ApiError;
import io.swagger.common.ApiUserCredentials;
import io.swagger.event.Response;
import io.swagger.common.SwaggerApi;
import io.swagger/client/model.User;
import java.util.List;
import mx.rpc.AsyncToken;
import mx.utils.UIDUtil;
import flash.utils.Dictionary;
import flash.events.EventDispatcher;
public class UserApi extends SwaggerApi {
/**
* Constructor for the UserApi api client
* @param apiCredentials Wrapper object for tokens and hostName required towards authentication
* @param eventDispatcher Optional event dispatcher that when provided is used by the SDK to dispatch any Response
*/
public function UserApi(apiCredentials: ApiUserCredentials, eventDispatcher: EventDispatcher = null) {
super(apiCredentials, eventDispatcher);
}
public static const event_create_user: String = "create_user";
public static const event_create_users_with_array_input: String = "create_users_with_array_input";
public static const event_create_users_with_list_input: String = "create_users_with_list_input";
public static const event_login_user: String = "login_user";
public static const event_logout_user: String = "logout_user";
public static const event_get_user_by_name: String = "get_user_by_name";
public static const event_update_user: String = "update_user";
public static const event_delete_user: String = "delete_user";
/*
* Returns void
*/
public function create_user (body: User): String {
// create path and map variables
var path: String = "/user".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "POST", queryParams, io.swagger.codegen.CodegenParameter@408629d1, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "create_user";
token.returnType = null ;
return requestId;
}
/*
* Returns void
*/
public function create_users_with_array_input (body: Array[User]): String {
// create path and map variables
var path: String = "/user/createWithArray".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "POST", queryParams, io.swagger.codegen.CodegenParameter@2823796f, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "create_users_with_array_input";
token.returnType = null ;
return requestId;
}
/*
* Returns void
*/
public function create_users_with_list_input (body: Array[User]): String {
// create path and map variables
var path: String = "/user/createWithList".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "POST", queryParams, io.swagger.codegen.CodegenParameter@30f97aff, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "create_users_with_list_input";
token.returnType = null ;
return requestId;
}
/*
* Returns String
*/
public function login_user (username: String, password: String): String {
// create path and map variables
var path: String = "/user/login".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
if("null" != String(username))
queryParams["username"] = toPathValue(username);
if("null" != String(password))
queryParams["password"] = toPathValue(password);
var token:AsyncToken = getApiInvoker().invokeAPI(path, "GET", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "login_user";
token.returnType = String;
return requestId;
}
/*
* Returns void
*/
public function logout_user (): String {
// create path and map variables
var path: String = "/user/logout".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "GET", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "logout_user";
token.returnType = null ;
return requestId;
}
/*
* Returns User
*/
public function get_user_by_name (username: String): String {
// create path and map variables
var path: String = "/user/{username}".replace(/{format}/g,"xml").replace("{" + "username" + "}", getApiInvoker().escapeString(username));
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "GET", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "get_user_by_name";
token.returnType = User;
return requestId;
}
/*
* Returns void
*/
public function update_user (username: String, body: User): String {
// create path and map variables
var path: String = "/user/{username}".replace(/{format}/g,"xml").replace("{" + "username" + "}", getApiInvoker().escapeString(username));
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "PUT", queryParams, io.swagger.codegen.CodegenParameter@4afa1477, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "update_user";
token.returnType = null ;
return requestId;
}
/*
* Returns void
*/
public function delete_user (username: String): String {
// create path and map variables
var path: String = "/user/{username}".replace(/{format}/g,"xml").replace("{" + "username" + "}", getApiInvoker().escapeString(username));
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "DELETE", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "delete_user";
token.returnType = null ;
return requestId;
}
}
}

View File

@ -0,0 +1,40 @@
package io.swagger/client/model {
[XmlRootNode(name="Category")]
public class Category {
[XmlElement(name="id")]
public var id: Number = None;
[XmlElement(name="name")]
public var name: String = None;
public function toString(): String {
var str: String = "Category: ";
str += " (id: " + id + ")";
str += " (name: " + name + ")";
return str;
}
}
}

View File

@ -0,0 +1,18 @@
package io.swagger/client/model {
import io.swagger.common.ListWrapper;
public class CategoryList implements ListWrapper {
// This declaration below of _Category_obj_class is to force flash compiler to include this class
private var _category_obj_class: io.swagger/client/model.Category = null;
[XmlElements(name="category", type="io.swagger/client/model.Category")]
public var category: Array = new Array();
public function getList(): Array{
return category;
}
}
}

View File

@ -0,0 +1,85 @@
package io.swagger/client/model {
[XmlRootNode(name="Order")]
public class Order {
[XmlElement(name="id")]
public var id: Number = None;
[XmlElement(name="petId")]
public var petId: Number = None;
[XmlElement(name="quantity")]
public var quantity: Number = None;
[XmlElement(name="shipDate")]
public var shipDate: Date = None;
/* Order Status */
[XmlElement(name="status")]
public var status: String = None;
[XmlElement(name="complete")]
public var complete: Boolean = None;
public function toString(): String {
var str: String = "Order: ";
str += " (id: " + id + ")";
str += " (petId: " + petId + ")";
str += " (quantity: " + quantity + ")";
str += " (shipDate: " + shipDate + ")";
str += " (status: " + status + ")";
str += " (complete: " + complete + ")";
return str;
}
}
}

View File

@ -0,0 +1,18 @@
package io.swagger/client/model {
import io.swagger.common.ListWrapper;
public class OrderList implements ListWrapper {
// This declaration below of _Order_obj_class is to force flash compiler to include this class
private var _order_obj_class: io.swagger/client/model.Order = null;
[XmlElements(name="order", type="io.swagger/client/model.Order")]
public var order: Array = new Array();
public function getList(): Array{
return order;
}
}
}

View File

@ -0,0 +1,86 @@
package io.swagger/client/model {
import io.swagger/client/model.Category;
import io.swagger/client/model.Tag;
import java.util.List;
[XmlRootNode(name="Pet")]
public class Pet {
[XmlElement(name="id")]
public var id: Number = None;
[XmlElement(name="category")]
public var category: Category = None;
[XmlElement(name="name")]
public var name: String = None;
public var photoUrls: Array[String] = None;
public var tags: Array[Tag] = None;
/* pet status in the store */
[XmlElement(name="status")]
public var status: String = None;
public function toString(): String {
var str: String = "Pet: ";
str += " (id: " + id + ")";
str += " (category: " + category + ")";
str += " (name: " + name + ")";
str += " (photoUrls: " + photoUrls + ")";
str += " (tags: " + tags + ")";
str += " (status: " + status + ")";
return str;
}
}
}

View File

@ -0,0 +1,21 @@
package io.swagger/client/model {
import io.swagger.common.ListWrapper;
import io.swagger/client/model.Category;
import io.swagger/client/model.Tag;
import java.util.List;
public class PetList implements ListWrapper {
// This declaration below of _Pet_obj_class is to force flash compiler to include this class
private var _pet_obj_class: io.swagger/client/model.Pet = null;
[XmlElements(name="pet", type="io.swagger/client/model.Pet")]
public var pet: Array = new Array();
public function getList(): Array{
return pet;
}
}
}

View File

@ -0,0 +1,40 @@
package io.swagger/client/model {
[XmlRootNode(name="Tag")]
public class Tag {
[XmlElement(name="id")]
public var id: Number = None;
[XmlElement(name="name")]
public var name: String = None;
public function toString(): String {
var str: String = "Tag: ";
str += " (id: " + id + ")";
str += " (name: " + name + ")";
return str;
}
}
}

View File

@ -0,0 +1,18 @@
package io.swagger/client/model {
import io.swagger.common.ListWrapper;
public class TagList implements ListWrapper {
// This declaration below of _Tag_obj_class is to force flash compiler to include this class
private var _tag_obj_class: io.swagger/client/model.Tag = null;
[XmlElements(name="tag", type="io.swagger/client/model.Tag")]
public var tag: Array = new Array();
public function getList(): Array{
return tag;
}
}
}

View File

@ -0,0 +1,107 @@
package io.swagger/client/model {
[XmlRootNode(name="User")]
public class User {
[XmlElement(name="id")]
public var id: Number = None;
[XmlElement(name="username")]
public var username: String = None;
[XmlElement(name="firstName")]
public var firstName: String = None;
[XmlElement(name="lastName")]
public var lastName: String = None;
[XmlElement(name="email")]
public var email: String = None;
[XmlElement(name="password")]
public var password: String = None;
[XmlElement(name="phone")]
public var phone: String = None;
/* User Status */
[XmlElement(name="userStatus")]
public var userStatus: Number = None;
public function toString(): String {
var str: String = "User: ";
str += " (id: " + id + ")";
str += " (username: " + username + ")";
str += " (firstName: " + firstName + ")";
str += " (lastName: " + lastName + ")";
str += " (email: " + email + ")";
str += " (password: " + password + ")";
str += " (phone: " + phone + ")";
str += " (userStatus: " + userStatus + ")";
return str;
}
}
}

View File

@ -0,0 +1,18 @@
package io.swagger/client/model {
import io.swagger.common.ListWrapper;
public class UserList implements ListWrapper {
// This declaration below of _User_obj_class is to force flash compiler to include this class
private var _user_obj_class: io.swagger/client/model.User = null;
[XmlElements(name="user", type="io.swagger/client/model.User")]
public var user: Array = new Array();
public function getList(): Array{
return user;
}
}
}

View File

@ -0,0 +1,40 @@
package io.swagger/client/model {
[XmlRootNode(name="Category")]
public class Category {
[XmlElement(name="id")]
public var id: Number = None;
[XmlElement(name="name")]
public var name: String = None;
public function toString(): String {
var str: String = "Category: ";
str += " (id: " + id + ")";
str += " (name: " + name + ")";
return str;
}
}
}

View File

@ -0,0 +1,85 @@
package io.swagger/client/model {
[XmlRootNode(name="Order")]
public class Order {
[XmlElement(name="id")]
public var id: Number = None;
[XmlElement(name="petId")]
public var petId: Number = None;
[XmlElement(name="quantity")]
public var quantity: Number = None;
[XmlElement(name="shipDate")]
public var shipDate: Date = None;
/* Order Status */
[XmlElement(name="status")]
public var status: String = None;
[XmlElement(name="complete")]
public var complete: Boolean = None;
public function toString(): String {
var str: String = "Order: ";
str += " (id: " + id + ")";
str += " (petId: " + petId + ")";
str += " (quantity: " + quantity + ")";
str += " (shipDate: " + shipDate + ")";
str += " (status: " + status + ")";
str += " (complete: " + complete + ")";
return str;
}
}
}

View File

@ -0,0 +1,86 @@
package io.swagger/client/model {
import io.swagger/client/model.Category;
import io.swagger/client/model.Tag;
import java.util.List;
[XmlRootNode(name="Pet")]
public class Pet {
[XmlElement(name="id")]
public var id: Number = None;
[XmlElement(name="category")]
public var category: Category = None;
[XmlElement(name="name")]
public var name: String = None;
public var photoUrls: Array[String] = None;
public var tags: Array[Tag] = None;
/* pet status in the store */
[XmlElement(name="status")]
public var status: String = None;
public function toString(): String {
var str: String = "Pet: ";
str += " (id: " + id + ")";
str += " (category: " + category + ")";
str += " (name: " + name + ")";
str += " (photoUrls: " + photoUrls + ")";
str += " (tags: " + tags + ")";
str += " (status: " + status + ")";
return str;
}
}
}

View File

@ -0,0 +1,40 @@
package io.swagger/client/model {
[XmlRootNode(name="Tag")]
public class Tag {
[XmlElement(name="id")]
public var id: Number = None;
[XmlElement(name="name")]
public var name: String = None;
public function toString(): String {
var str: String = "Tag: ";
str += " (id: " + id + ")";
str += " (name: " + name + ")";
return str;
}
}
}

View File

@ -0,0 +1,107 @@
package io.swagger/client/model {
[XmlRootNode(name="User")]
public class User {
[XmlElement(name="id")]
public var id: Number = None;
[XmlElement(name="username")]
public var username: String = None;
[XmlElement(name="firstName")]
public var firstName: String = None;
[XmlElement(name="lastName")]
public var lastName: String = None;
[XmlElement(name="email")]
public var email: String = None;
[XmlElement(name="password")]
public var password: String = None;
[XmlElement(name="phone")]
public var phone: String = None;
/* User Status */
[XmlElement(name="userStatus")]
public var userStatus: Number = None;
public function toString(): String {
var str: String = "User: ";
str += " (id: " + id + ")";
str += " (username: " + username + ")";
str += " (firstName: " + firstName + ")";
str += " (lastName: " + lastName + ")";
str += " (email: " + email + ")";
str += " (password: " + password + ")";
str += " (phone: " + phone + ")";
str += " (userStatus: " + userStatus + ")";
return str;
}
}
}

View File

@ -0,0 +1,255 @@
package io.swagger.common {
import io.swagger.event.ApiClientEvent;
import io.swagger.event.Response;
public class ApiInvoker extends EventDispatcher {
private static const DELETE_DATA_DUMMY:String = "dummyDataRequiredForDeleteOverride";
private static const X_HTTP_OVERRIDE_KEY:String = "X-HTTP-Method-Override";
private static const CONTENT_TYPE_HEADER_KEY:String = "Content-Type";
public function ApiInvoker(apiUsageCredentials:ApiUserCredentials, eventNotifier:EventDispatcher, useProxy:Boolean = true) {
_apiUsageCredentials = apiUsageCredentials;
_useProxyServer = useProxy;
if (_apiUsageCredentials.hostName != null) {
_proxyHostName = _apiUsageCredentials.hostName;
}
_apiPath = _apiUsageCredentials.apiPath;
_proxyPath = _apiUsageCredentials.proxyPath;
_apiProxyServerUrl = _apiUsageCredentials.apiProxyServerUrl;
_apiEventNotifier = eventNotifier;
}
public var _apiEventNotifier:EventDispatcher;
internal var _apiProxyServerUrl:String = "";
internal var _useProxyServer:Boolean = true;
private var _apiUsageCredentials:ApiUserCredentials;
private var _baseUrl:String = "";
private var _proxyHostName:String = "";
private var _apiPath:String = "";
private var _proxyPath:String = "";
public function invokeAPI(resourceURL:String, method:String, queryParams:Dictionary, postObject:Object, headerParams:Dictionary):AsyncToken {
//make the communication
if (_useProxyServer) {
resourceURL = _apiProxyServerUrl + resourceURL;
}
else {
resourceURL = "http://" + _proxyHostName + _apiPath + resourceURL;
}
var counter:int = 0;
var symbol:String = "&";
var paramValue:Object;
for (var paramName:String in queryParams) {
paramValue = queryParams[paramName];
//var key:String = paramName;
// do stuff
symbol = "&";
if (counter == 0) {
symbol = "?";
}
resourceURL = resourceURL + symbol + paramName + "=" + paramValue.toString();
counter++;
}
// trace(resourceURL);
//create a httpservice and invoke the rest url waiting for response
var requestHeader:Object = new Object();
if (headerParams != null) {
for (var key:String in headerParams) {
requestHeader[key] = headerParams[key];
}
}
resourceURL = ApiUrlHelper.appendTokenInfo(resourceURL, requestHeader, _apiUsageCredentials);
var bodyData:String = marshal(postObject).toString();//restRequest.postData;
return doRestCall(resourceURL, onApiRequestResult, onApiRequestFault, method, bodyData, requestHeader, "application/xml");
}
public function marshal(source:Object):Object {
// trace("marshal got - " + source)
if (source is String) {
return source;
} else if (source is Array && source.length > 0) {
var writer:XMLWriter = new XMLWriter();
var sourceArray:Array = source as Array;
var arrayEnclosure:String = getArrayEnclosure(sourceArray);
writer.xml.setName(arrayEnclosure);
for (var i:int = 0; i < sourceArray.length; i++) {
var o:Object = sourceArray[i];
writer.xml.appendChild(marshal(o));
}
return writer.xml;
} else
return marshalObject(source);
}
public function marshalObject(source:Object):XML {
var writer:XMLWriter = new XMLWriter();
var objDescriptor:XML = describeType(source);
var property:XML;
var propertyType:String;
var propertyValue:Object;
var qualifiedClassName:String = objDescriptor.@name;
qualifiedClassName = qualifiedClassName.replace("::", ".");
var className:String = qualifiedClassName.substring(qualifiedClassName.lastIndexOf(".") + 1);
className = className().toLowerCase() + className.substring(1);
writer.xml.setName(className);
for each(property in objDescriptor.elements("variable")) {
propertyValue = source[property.@name];
if (propertyValue != null) {
if (ObjectUtil.isSimple(propertyValue)) {
writer.addProperty(property.@name, propertyValue.toString());
}
else {
writer.addProperty(property.@name, marshal(propertyValue).toXMLString());
}
}
}
for each(property in objDescriptor.elements("accessor")) {
if (property.@access == "readonly") {
continue;
}
propertyValue = source[property.@name];
if (source[property.@name] != null) {
if (ObjectUtil.isSimple(propertyValue)) {
writer.addProperty(property.@name, propertyValue.toString());
}
else {
writer.addProperty(property.@name, marshal(propertyValue).toXMLString());
}
}
}
return writer.xml;
}
public function escapeString(str:String):String {
return str;
}
private function doRestCall(url:String, resultFunction:Function, faultFunction:Function = null,
restMethod:String = "GET",
bodyData:Object = null, headers:Object = null, contentType:String = "application/xml"):AsyncToken {
var httpService:HTTPService = new HTTPService();
if (headers == null) {
headers = new Object();
}
httpService.method = restMethod;
if (restMethod.toUpperCase() != HTTPRequestMessage.GET_METHOD) {
//httpService.method = HTTPRequestMessage.POST_METHOD; - not required as we're using the proxy
if (bodyData == null) {
bodyData = new Object();
}
if (restMethod == HTTPRequestMessage.DELETE_METHOD) {
headers[X_HTTP_OVERRIDE_KEY] = HTTPRequestMessage.DELETE_METHOD;
bodyData = DELETE_DATA_DUMMY;
}
else if (restMethod == HTTPRequestMessage.PUT_METHOD) {
headers[X_HTTP_OVERRIDE_KEY] = HTTPRequestMessage.PUT_METHOD;
}
else {
headers[CONTENT_TYPE_HEADER_KEY] = contentType;
}
}
else {
//if the request type is GET and content type is xml then the Flex HTTPService converts it to a POST ... yeah
contentType = null;
}
httpService.url = url;
httpService.contentType = contentType;
httpService.resultFormat = "e4x";
httpService.headers = headers;
httpService.addEventListener(ResultEvent.RESULT, resultFunction);
if (faultFunction != null) {
httpService.addEventListener(FaultEvent.FAULT, faultFunction);
}
if (_useProxyServer) {
httpService.useProxy = true;
var channelSet:ChannelSet = new ChannelSet();
var httpChannel:HTTPChannel = new HTTPChannel();
httpChannel.uri = ApiUrlHelper.getProxyUrl(_proxyHostName, _proxyPath);
channelSet.addChannel(httpChannel);
httpService.channelSet = channelSet;
}
return httpService.send(bodyData);
}
private function onApiRequestResult(event:ResultEvent):void {
var completionListener:Function = event.token.completionListener;
var result:Object = event.result;
var resultType:Class = event.token.returnType;
var resultObject:Object;
if (resultType != null) {
var context:ASAXBContext = ASAXBContext.newInstance(resultType);
var unmarshaller:Unmarshaller = context.createUnmarshaller();
var resultXML:XML = new XML(event.result);
try {
resultObject = unmarshaller.unmarshal(resultXML);
}
catch (error:TypeError) {
var errorResponse:Response = new Response(false, null, "Could not unmarshall response");
if (_apiEventNotifier != null) { //dispatch event via assigned dispatcher
var failureEvent:ApiClientEvent = new ApiClientEvent(event.token.completionEventType);
failureEvent.response = errorResponse;
_apiEventNotifier.dispatchEvent(failureEvent);
}
}
if (resultObject is ListWrapper) {
resultObject = ListWrapper(resultObject).getList();
}
}
var response:Response = new Response(true, resultObject);
response.requestId = event.token.requestId;
var successEventType:String = event.token.completionEventType != null ? event.token.completionEventType : ApiClientEvent.SUCCESS_EVENT;
if (_apiEventNotifier != null) { //dispatch event via assigned dispatcher
var successEvent:ApiClientEvent = new ApiClientEvent(successEventType);
successEvent.response = response;
_apiEventNotifier.dispatchEvent(successEvent);
}
}
private function onApiRequestFault(event:FaultEvent):void {
var completionListener:Function = event.token.completionListener;
if (completionListener != null) {
completionListener.call(null, new Response(false, null, event.fault.faultString));
}
var failureEventType:String = event.token.completionEventType != null ? event.token.completionEventType : ApiClientEvent.FAILURE_EVENT;
if (_apiEventNotifier != null) { //dispatch event via assigned dispatcher
var failureEvent:ApiClientEvent = new ApiClientEvent(failureEventType);
failureEvent.response = new Response(false, null, event.fault.faultString);
_apiEventNotifier.dispatchEvent(failureEvent);
}
}
private function getArrayEnclosure(arr:Array):String {
if (arr != null && arr.length > 0) {
var className:String = flash.utils.getQualifiedClassName(arr[0])
if (className.indexOf("::") > 0)
className = className.substr(className.indexOf("::") + 2, className.length)
return className.substring(0, 1).toLowerCase() + className.substring(1, className.length) + "s";
} else
return "";
}
}
}

View File

@ -0,0 +1,41 @@
package io.swagger.common {
import io.swagger.common.ApiUserCredentials;
/**
* @private
* Internal class for the Rest client
*/
internal class ApiUrlHelper {
private static const API_URL_KEY:String = "api_key";
private static const AUTH_TOKEN_URL_KEY:String = "auth_token";
private static const HTTP_URL_PREFIX:String = "http://";
internal static function appendTokenInfo(restUrl:String, requestHeader: Object, credentials: ApiUserCredentials): String {
//checks for the presence api credentials on client initialization and not repeated here
if(restUrl.indexOf("?") == -1){
restUrl += ( "?" + API_URL_KEY + "=" + credentials.apiToken );
}
else{
restUrl += ( "&" + API_URL_KEY + "=" + credentials.apiToken );
}
requestHeader.api_key = credentials.apiToken;
if(credentials.authToken != null && credentials.authToken != ""){
restUrl += ( "&" + AUTH_TOKEN_URL_KEY + "=" + credentials.authToken );
requestHeader.auth_token = credentials.authToken;
}
return restUrl;
}
internal static function getProxyUrl(hostName: String, proxyPath: String): String{
if (hostName(hostName.length - 1) == "/") //remove trailing slash
{
hostName = hostName.substring(0, hostName.length - 1);
}
return HTTP_URL_PREFIX + hostName + proxyPath;
}
}
}

View File

@ -0,0 +1,63 @@
package io.swagger.common {
/**
* Api account credentials.
*
*/
public class ApiUserCredentials {
/**
* An apitoken that is passed along with the requests
*/
public var apiToken:String;
/**
* A valid auth_token which could be necessary for certain operations
*/
public var authToken:String;
/**
* The userId which could be required for certain operations
*/
public var userId:Number;
/**
* The host name for the Rest API eg. api.companyName.com
*/
public var hostName:String;
/**
* The base path to the api resources - used along with the hostname
* eg. /v4
*/
public var apiPath: String;
/**
* The base path to the blazeds proxy
* eg. /v4/messagebroker/restproxy
*/
public var proxyPath: String;
/**
* If a proxy server has been set up for the services specify the URL here. This value is used when the Api is invoked with
* the value useProxy as true
*/
public var apiProxyServerUrl: String;
/**
* Constructor of ApiUserCredentials
* @param apiToken An apitoken that is passed along with the requests
* @param authToken A valid auth_token which could necessary for certain operations
* @param hostName The host name for the Rest API eg. api.companyName.com
* @param userId The userId which is required for certain operations - currently, get user lists
*/
public function ApiUserCredentials(hostName: String, apiPath: String, apiToken: String,
authToken: String = null, userId: Number = -1, apiProxyServerUrl: String="",
proxyPath: String = null) {
this.hostName = hostName;
this.apiToken = apiToken;
this.authToken = authToken;
this.userId = userId;
this.apiPath = apiPath;
this.apiProxyServerUrl = apiProxyServerUrl;
this.proxyPath = proxyPath;
}
}
}

View File

@ -0,0 +1,9 @@
package io.swagger.common
{
public interface ListWrapper
{
function getList(): Array;
}
}

View File

@ -0,0 +1,75 @@
package io.swagger.common
{
import io.swagger.common.ApiUserCredentials;
import flash.events.EventDispatcher;
import flash.events.IEventDispatcher;
import mx.utils.UIDUtil;
public class SwaggerApi extends EventDispatcher
{
protected var _apiUsageCredentials:ApiUserCredentials;
protected var _apiEventNotifier:EventDispatcher;
protected var _apiInvoker: ApiInvoker;
protected var _useProxyServer: Boolean = false;
/**
* Constructor for the api client
* @param apiCredentials Wrapper object for tokens and hostName required towards authentication
* @param eventDispatcher Optional event dispatcher that when provided is used by the SDK to dispatch any Response
*/
public function SwaggerApi(apiCredentials: ApiUserCredentials, eventDispatcher: EventDispatcher = null) {
super();
_apiUsageCredentials = apiCredentials;
_apiEventNotifier = eventDispatcher;
}
public function useProxyServer(value:Boolean, proxyServerUrl: String = null):void {
_useProxyServer = value;
}
protected function getApiInvoker():ApiInvoker {
if(_apiInvoker == null){
if(_apiEventNotifier == null){
_apiEventNotifier = this;
}
_apiInvoker = new ApiInvoker(_apiUsageCredentials, _apiEventNotifier, _useProxyServer);
}
return _apiInvoker;
}
protected function getUniqueId():String {
return UIDUtil.createUID();
}
/**
* Method for returning the path value
* For a string value an empty value is returned if the value is null
* @param value
* @return
*/
protected static function toPathValue(value: Object): String {
if(value is Array){
return arrayToPathValue(value as Array);
}
return value == null ? "" : value.toString();
}
/**
* Method for returning a path value
* For a list of objects a comma separated string is returned
* @param objects
* @return
*/
protected static function arrayToPathValue(objects: Array): String {
var out: String = "";
return objects.join(",");
}
}
}

View File

@ -0,0 +1,28 @@
package io.swagger.common
{
public class XMLWriter
{
public var xml:XML;
public function XMLWriter()
{
xml=<obj/>;
}
public function reset():void {
xml=new XML();
}
public function addProperty(propertyName:String, propertyValue:String):XML {
var xmlProperty:XML=<new/>
xmlProperty.setName(propertyName);
xmlProperty.appendChild(propertyValue);
xml.appendChild(xmlProperty);
return xmlProperty;
}
public function addAttribute(propertyName:String, attribute:String, attributeValue:String):void {
xml.elements(propertyName)[0].@[attribute]=attributeValue;
}
}
}

View File

@ -0,0 +1,36 @@
package io.swagger.event {
import io.swagger.event.Response;
import flash.events.Event;
/**
* Event dispatched by the SDK to communicate success events and failure events.
* If a custom dispatcher has been assigned by the consumer on the generated client then the dispatcher dispatches
* the ApiClientEvent to indicate success or failure of the invocation using the Response
*/
public class ApiClientEvent extends Event{
/**
* Event type to indicate a unsuccessful invocation
*/
public static const FAILURE_EVENT:String = "unsuccesfulInvocation";
/**
* Event type to indicate a successful invocation
*/
public static const SUCCESS_EVENT:String = "successfulInvocation";
/**
* The Response object which contains response info
*/
public var response: Response;
/**
* Any additional info
*/
public var message:String;
public function ApiClientEvent(type:String,bubbles:Boolean = false,cancelable:Boolean = false) {
super(type, bubbles, cancelable);
}
}
}

View File

@ -0,0 +1,56 @@
package io.swagger.event {
/**
* Response contains info on the result of an API invocation.
* A completion listener will expect this Response object.
*/
public class Response {
/**
* Indicates whether the invoked operation failed or succeeded
*/
public var isSuccess:Boolean;
/**
* The payload of the succesful operation eg. a Word in a WordRequest
*/
public var payload:Object;
/**
* Error message in case of failure
*/
public var errorMessage:String;
/**
* A request Id that was passed in by the user as a param when invoking the operation
*/
public var requestId:String;
private static const API_ERROR_MSG:String = "Api error response: ";
public function Response(isSuccessful: Boolean, payload: Object = null, errorMessage: String = null, requestId: String = null) {
this.isSuccess = isSuccessful;
this.payload = payload;
this.errorMessage = getFriendlyMessage(errorMessage);
}
private static function getFriendlyMessage(errorMessage: String): String{
var result: String = errorMessage;
if(errorMessage == null)
return null;
var errorCode: String;
var errorCodeArray: Array = errorMessage.match(/(?<=HTTP\/1.1 )[0-9][0-9][0-9]/);
if(errorCodeArray != null && errorCodeArray.length == 1){
errorCode = String(errorCodeArray[0]);
}
var msgArray: Array = errorMessage.match(/(?<=HTTP\/1.1 [0-9][0-9][0-9] )[^]*/);
if(msgArray != null && msgArray.length == 1){
result = API_ERROR_MSG + String(msgArray[0]);
}
return result;
}
public function toString(): String {
return "Response (requestId:" + requestId + "; isSuccess:" + isSuccess + "; errorMessage:" + errorMessage + "; payload:" + payload + ")";
}
}
}

View File

@ -0,0 +1,34 @@
package io.swagger.exception
{
public class ApiErrorCodes
{
/**
* System exception.
*/
public static const SYSTEM_EXCEPTION: Number = 0;
/**
* With Arguments as current key.
*/
public static const API_KEY_NOT_VALID: Number = 1000;
/**
* With arguments as current token value
*/
public static const AUTH_TOKEN_NOT_VALID: Number = 1001;
/**
* With arguments as input JSON and output class anme
*/
public static const ERROR_CONVERTING_JSON_TO_JAVA: Number = 1002;
/**
* With arguments as JAVA class name
*/
public static const ERROR_CONVERTING_JAVA_TO_JSON: Number = 1003;
public static const ERROR_FROM_WEBSERVICE_CALL: Number = 1004;
/**
* With arguments as current API server name
*/
public static const API_SERVER_NOT_VALID: Number = 1005;
}
}

View File

@ -0,0 +1,10 @@
package io.swagger.exception
{
public class ApiError extends Error
{
public function ApiError(id:*=0, message:*="")
{
super(message,id);
}
}
}

View File

@ -0,0 +1,255 @@
package io.swagger.common {
import io.swagger.event.ApiClientEvent;
import io.swagger.event.Response;
public class ApiInvoker extends EventDispatcher {
private static const DELETE_DATA_DUMMY:String = "dummyDataRequiredForDeleteOverride";
private static const X_HTTP_OVERRIDE_KEY:String = "X-HTTP-Method-Override";
private static const CONTENT_TYPE_HEADER_KEY:String = "Content-Type";
public function ApiInvoker(apiUsageCredentials:ApiUserCredentials, eventNotifier:EventDispatcher, useProxy:Boolean = true) {
_apiUsageCredentials = apiUsageCredentials;
_useProxyServer = useProxy;
if (_apiUsageCredentials.hostName != null) {
_proxyHostName = _apiUsageCredentials.hostName;
}
_apiPath = _apiUsageCredentials.apiPath;
_proxyPath = _apiUsageCredentials.proxyPath;
_apiProxyServerUrl = _apiUsageCredentials.apiProxyServerUrl;
_apiEventNotifier = eventNotifier;
}
public var _apiEventNotifier:EventDispatcher;
internal var _apiProxyServerUrl:String = "";
internal var _useProxyServer:Boolean = true;
private var _apiUsageCredentials:ApiUserCredentials;
private var _baseUrl:String = "";
private var _proxyHostName:String = "";
private var _apiPath:String = "";
private var _proxyPath:String = "";
public function invokeAPI(resourceURL:String, method:String, queryParams:Dictionary, postObject:Object, headerParams:Dictionary):AsyncToken {
//make the communication
if (_useProxyServer) {
resourceURL = _apiProxyServerUrl + resourceURL;
}
else {
resourceURL = "http://" + _proxyHostName + _apiPath + resourceURL;
}
var counter:int = 0;
var symbol:String = "&";
var paramValue:Object;
for (var paramName:String in queryParams) {
paramValue = queryParams[paramName];
//var key:String = paramName;
// do stuff
symbol = "&";
if (counter == 0) {
symbol = "?";
}
resourceURL = resourceURL + symbol + paramName + "=" + paramValue.toString();
counter++;
}
// trace(resourceURL);
//create a httpservice and invoke the rest url waiting for response
var requestHeader:Object = new Object();
if (headerParams != null) {
for (var key:String in headerParams) {
requestHeader[key] = headerParams[key];
}
}
resourceURL = ApiUrlHelper.appendTokenInfo(resourceURL, requestHeader, _apiUsageCredentials);
var bodyData:String = marshal(postObject).toString();//restRequest.postData;
return doRestCall(resourceURL, onApiRequestResult, onApiRequestFault, method, bodyData, requestHeader, "application/xml");
}
public function marshal(source:Object):Object {
// trace("marshal got - " + source)
if (source is String) {
return source;
} else if (source is Array && source.length > 0) {
var writer:XMLWriter = new XMLWriter();
var sourceArray:Array = source as Array;
var arrayEnclosure:String = getArrayEnclosure(sourceArray);
writer.xml.setName(arrayEnclosure);
for (var i:int = 0; i < sourceArray.length; i++) {
var o:Object = sourceArray[i];
writer.xml.appendChild(marshal(o));
}
return writer.xml;
} else
return marshalObject(source);
}
public function marshalObject(source:Object):XML {
var writer:XMLWriter = new XMLWriter();
var objDescriptor:XML = describeType(source);
var property:XML;
var propertyType:String;
var propertyValue:Object;
var qualifiedClassName:String = objDescriptor.@name;
qualifiedClassName = qualifiedClassName.replace("::", ".");
var className:String = qualifiedClassName.substring(qualifiedClassName.lastIndexOf(".") + 1);
className = className().toLowerCase() + className.substring(1);
writer.xml.setName(className);
for each(property in objDescriptor.elements("variable")) {
propertyValue = source[property.@name];
if (propertyValue != null) {
if (ObjectUtil.isSimple(propertyValue)) {
writer.addProperty(property.@name, propertyValue.toString());
}
else {
writer.addProperty(property.@name, marshal(propertyValue).toXMLString());
}
}
}
for each(property in objDescriptor.elements("accessor")) {
if (property.@access == "readonly") {
continue;
}
propertyValue = source[property.@name];
if (source[property.@name] != null) {
if (ObjectUtil.isSimple(propertyValue)) {
writer.addProperty(property.@name, propertyValue.toString());
}
else {
writer.addProperty(property.@name, marshal(propertyValue).toXMLString());
}
}
}
return writer.xml;
}
public function escapeString(str:String):String {
return str;
}
private function doRestCall(url:String, resultFunction:Function, faultFunction:Function = null,
restMethod:String = "GET",
bodyData:Object = null, headers:Object = null, contentType:String = "application/xml"):AsyncToken {
var httpService:HTTPService = new HTTPService();
if (headers == null) {
headers = new Object();
}
httpService.method = restMethod;
if (restMethod.toUpperCase() != HTTPRequestMessage.GET_METHOD) {
//httpService.method = HTTPRequestMessage.POST_METHOD; - not required as we're using the proxy
if (bodyData == null) {
bodyData = new Object();
}
if (restMethod == HTTPRequestMessage.DELETE_METHOD) {
headers[X_HTTP_OVERRIDE_KEY] = HTTPRequestMessage.DELETE_METHOD;
bodyData = DELETE_DATA_DUMMY;
}
else if (restMethod == HTTPRequestMessage.PUT_METHOD) {
headers[X_HTTP_OVERRIDE_KEY] = HTTPRequestMessage.PUT_METHOD;
}
else {
headers[CONTENT_TYPE_HEADER_KEY] = contentType;
}
}
else {
//if the request type is GET and content type is xml then the Flex HTTPService converts it to a POST ... yeah
contentType = null;
}
httpService.url = url;
httpService.contentType = contentType;
httpService.resultFormat = "e4x";
httpService.headers = headers;
httpService.addEventListener(ResultEvent.RESULT, resultFunction);
if (faultFunction != null) {
httpService.addEventListener(FaultEvent.FAULT, faultFunction);
}
if (_useProxyServer) {
httpService.useProxy = true;
var channelSet:ChannelSet = new ChannelSet();
var httpChannel:HTTPChannel = new HTTPChannel();
httpChannel.uri = ApiUrlHelper.getProxyUrl(_proxyHostName, _proxyPath);
channelSet.addChannel(httpChannel);
httpService.channelSet = channelSet;
}
return httpService.send(bodyData);
}
private function onApiRequestResult(event:ResultEvent):void {
var completionListener:Function = event.token.completionListener;
var result:Object = event.result;
var resultType:Class = event.token.returnType;
var resultObject:Object;
if (resultType != null) {
var context:ASAXBContext = ASAXBContext.newInstance(resultType);
var unmarshaller:Unmarshaller = context.createUnmarshaller();
var resultXML:XML = new XML(event.result);
try {
resultObject = unmarshaller.unmarshal(resultXML);
}
catch (error:TypeError) {
var errorResponse:Response = new Response(false, null, "Could not unmarshall response");
if (_apiEventNotifier != null) { //dispatch event via assigned dispatcher
var failureEvent:ApiClientEvent = new ApiClientEvent(event.token.completionEventType);
failureEvent.response = errorResponse;
_apiEventNotifier.dispatchEvent(failureEvent);
}
}
if (resultObject is ListWrapper) {
resultObject = ListWrapper(resultObject).getList();
}
}
var response:Response = new Response(true, resultObject);
response.requestId = event.token.requestId;
var successEventType:String = event.token.completionEventType != null ? event.token.completionEventType : ApiClientEvent.SUCCESS_EVENT;
if (_apiEventNotifier != null) { //dispatch event via assigned dispatcher
var successEvent:ApiClientEvent = new ApiClientEvent(successEventType);
successEvent.response = response;
_apiEventNotifier.dispatchEvent(successEvent);
}
}
private function onApiRequestFault(event:FaultEvent):void {
var completionListener:Function = event.token.completionListener;
if (completionListener != null) {
completionListener.call(null, new Response(false, null, event.fault.faultString));
}
var failureEventType:String = event.token.completionEventType != null ? event.token.completionEventType : ApiClientEvent.FAILURE_EVENT;
if (_apiEventNotifier != null) { //dispatch event via assigned dispatcher
var failureEvent:ApiClientEvent = new ApiClientEvent(failureEventType);
failureEvent.response = new Response(false, null, event.fault.faultString);
_apiEventNotifier.dispatchEvent(failureEvent);
}
}
private function getArrayEnclosure(arr:Array):String {
if (arr != null && arr.length > 0) {
var className:String = flash.utils.getQualifiedClassName(arr[0])
if (className.indexOf("::") > 0)
className = className.substr(className.indexOf("::") + 2, className.length)
return className.substring(0, 1).toLowerCase() + className.substring(1, className.length) + "s";
} else
return "";
}
}
}

View File

@ -0,0 +1,41 @@
package io.swagger.common {
import io.swagger.common.ApiUserCredentials;
/**
* @private
* Internal class for the Rest client
*/
internal class ApiUrlHelper {
private static const API_URL_KEY:String = "api_key";
private static const AUTH_TOKEN_URL_KEY:String = "auth_token";
private static const HTTP_URL_PREFIX:String = "http://";
internal static function appendTokenInfo(restUrl:String, requestHeader: Object, credentials: ApiUserCredentials): String {
//checks for the presence api credentials on client initialization and not repeated here
if(restUrl.indexOf("?") == -1){
restUrl += ( "?" + API_URL_KEY + "=" + credentials.apiToken );
}
else{
restUrl += ( "&" + API_URL_KEY + "=" + credentials.apiToken );
}
requestHeader.api_key = credentials.apiToken;
if(credentials.authToken != null && credentials.authToken != ""){
restUrl += ( "&" + AUTH_TOKEN_URL_KEY + "=" + credentials.authToken );
requestHeader.auth_token = credentials.authToken;
}
return restUrl;
}
internal static function getProxyUrl(hostName: String, proxyPath: String): String{
if (hostName(hostName.length - 1) == "/") //remove trailing slash
{
hostName = hostName.substring(0, hostName.length - 1);
}
return HTTP_URL_PREFIX + hostName + proxyPath;
}
}
}

View File

@ -0,0 +1,63 @@
package io.swagger.common {
/**
* Api account credentials.
*
*/
public class ApiUserCredentials {
/**
* An apitoken that is passed along with the requests
*/
public var apiToken:String;
/**
* A valid auth_token which could be necessary for certain operations
*/
public var authToken:String;
/**
* The userId which could be required for certain operations
*/
public var userId:Number;
/**
* The host name for the Rest API eg. api.companyName.com
*/
public var hostName:String;
/**
* The base path to the api resources - used along with the hostname
* eg. /v4
*/
public var apiPath: String;
/**
* The base path to the blazeds proxy
* eg. /v4/messagebroker/restproxy
*/
public var proxyPath: String;
/**
* If a proxy server has been set up for the services specify the URL here. This value is used when the Api is invoked with
* the value useProxy as true
*/
public var apiProxyServerUrl: String;
/**
* Constructor of ApiUserCredentials
* @param apiToken An apitoken that is passed along with the requests
* @param authToken A valid auth_token which could necessary for certain operations
* @param hostName The host name for the Rest API eg. api.companyName.com
* @param userId The userId which is required for certain operations - currently, get user lists
*/
public function ApiUserCredentials(hostName: String, apiPath: String, apiToken: String,
authToken: String = null, userId: Number = -1, apiProxyServerUrl: String="",
proxyPath: String = null) {
this.hostName = hostName;
this.apiToken = apiToken;
this.authToken = authToken;
this.userId = userId;
this.apiPath = apiPath;
this.apiProxyServerUrl = apiProxyServerUrl;
this.proxyPath = proxyPath;
}
}
}

View File

@ -0,0 +1,9 @@
package io.swagger.common
{
public interface ListWrapper
{
function getList(): Array;
}
}

View File

@ -0,0 +1,75 @@
package io.swagger.common
{
import io.swagger.common.ApiUserCredentials;
import flash.events.EventDispatcher;
import flash.events.IEventDispatcher;
import mx.utils.UIDUtil;
public class SwaggerApi extends EventDispatcher
{
protected var _apiUsageCredentials:ApiUserCredentials;
protected var _apiEventNotifier:EventDispatcher;
protected var _apiInvoker: ApiInvoker;
protected var _useProxyServer: Boolean = false;
/**
* Constructor for the api client
* @param apiCredentials Wrapper object for tokens and hostName required towards authentication
* @param eventDispatcher Optional event dispatcher that when provided is used by the SDK to dispatch any Response
*/
public function SwaggerApi(apiCredentials: ApiUserCredentials, eventDispatcher: EventDispatcher = null) {
super();
_apiUsageCredentials = apiCredentials;
_apiEventNotifier = eventDispatcher;
}
public function useProxyServer(value:Boolean, proxyServerUrl: String = null):void {
_useProxyServer = value;
}
protected function getApiInvoker():ApiInvoker {
if(_apiInvoker == null){
if(_apiEventNotifier == null){
_apiEventNotifier = this;
}
_apiInvoker = new ApiInvoker(_apiUsageCredentials, _apiEventNotifier, _useProxyServer);
}
return _apiInvoker;
}
protected function getUniqueId():String {
return UIDUtil.createUID();
}
/**
* Method for returning the path value
* For a string value an empty value is returned if the value is null
* @param value
* @return
*/
protected static function toPathValue(value: Object): String {
if(value is Array){
return arrayToPathValue(value as Array);
}
return value == null ? "" : value.toString();
}
/**
* Method for returning a path value
* For a list of objects a comma separated string is returned
* @param objects
* @return
*/
protected static function arrayToPathValue(objects: Array): String {
var out: String = "";
return objects.join(",");
}
}
}

View File

@ -0,0 +1,28 @@
package io.swagger.common
{
public class XMLWriter
{
public var xml:XML;
public function XMLWriter()
{
xml=<obj/>;
}
public function reset():void {
xml=new XML();
}
public function addProperty(propertyName:String, propertyValue:String):XML {
var xmlProperty:XML=<new/>
xmlProperty.setName(propertyName);
xmlProperty.appendChild(propertyValue);
xml.appendChild(xmlProperty);
return xmlProperty;
}
public function addAttribute(propertyName:String, attribute:String, attributeValue:String):void {
xml.elements(propertyName)[0].@[attribute]=attributeValue;
}
}
}

View File

@ -0,0 +1,36 @@
package io.swagger.event {
import io.swagger.event.Response;
import flash.events.Event;
/**
* Event dispatched by the SDK to communicate success events and failure events.
* If a custom dispatcher has been assigned by the consumer on the generated client then the dispatcher dispatches
* the ApiClientEvent to indicate success or failure of the invocation using the Response
*/
public class ApiClientEvent extends Event{
/**
* Event type to indicate a unsuccessful invocation
*/
public static const FAILURE_EVENT:String = "unsuccesfulInvocation";
/**
* Event type to indicate a successful invocation
*/
public static const SUCCESS_EVENT:String = "successfulInvocation";
/**
* The Response object which contains response info
*/
public var response: Response;
/**
* Any additional info
*/
public var message:String;
public function ApiClientEvent(type:String,bubbles:Boolean = false,cancelable:Boolean = false) {
super(type, bubbles, cancelable);
}
}
}

View File

@ -0,0 +1,56 @@
package io.swagger.event {
/**
* Response contains info on the result of an API invocation.
* A completion listener will expect this Response object.
*/
public class Response {
/**
* Indicates whether the invoked operation failed or succeeded
*/
public var isSuccess:Boolean;
/**
* The payload of the succesful operation eg. a Word in a WordRequest
*/
public var payload:Object;
/**
* Error message in case of failure
*/
public var errorMessage:String;
/**
* A request Id that was passed in by the user as a param when invoking the operation
*/
public var requestId:String;
private static const API_ERROR_MSG:String = "Api error response: ";
public function Response(isSuccessful: Boolean, payload: Object = null, errorMessage: String = null, requestId: String = null) {
this.isSuccess = isSuccessful;
this.payload = payload;
this.errorMessage = getFriendlyMessage(errorMessage);
}
private static function getFriendlyMessage(errorMessage: String): String{
var result: String = errorMessage;
if(errorMessage == null)
return null;
var errorCode: String;
var errorCodeArray: Array = errorMessage.match(/(?<=HTTP\/1.1 )[0-9][0-9][0-9]/);
if(errorCodeArray != null && errorCodeArray.length == 1){
errorCode = String(errorCodeArray[0]);
}
var msgArray: Array = errorMessage.match(/(?<=HTTP\/1.1 [0-9][0-9][0-9] )[^]*/);
if(msgArray != null && msgArray.length == 1){
result = API_ERROR_MSG + String(msgArray[0]);
}
return result;
}
public function toString(): String {
return "Response (requestId:" + requestId + "; isSuccess:" + isSuccess + "; errorMessage:" + errorMessage + "; payload:" + payload + ")";
}
}
}

View File

@ -0,0 +1,34 @@
package io.swagger.exception
{
public class ApiErrorCodes
{
/**
* System exception.
*/
public static const SYSTEM_EXCEPTION: Number = 0;
/**
* With Arguments as current key.
*/
public static const API_KEY_NOT_VALID: Number = 1000;
/**
* With arguments as current token value
*/
public static const AUTH_TOKEN_NOT_VALID: Number = 1001;
/**
* With arguments as input JSON and output class anme
*/
public static const ERROR_CONVERTING_JSON_TO_JAVA: Number = 1002;
/**
* With arguments as JAVA class name
*/
public static const ERROR_CONVERTING_JAVA_TO_JSON: Number = 1003;
public static const ERROR_FROM_WEBSERVICE_CALL: Number = 1004;
/**
* With arguments as current API server name
*/
public static const API_SERVER_NOT_VALID: Number = 1005;
}
}

View File

@ -0,0 +1,10 @@
package io.swagger.exception
{
public class ApiError extends Error
{
public function ApiError(id:*=0, message:*="")
{
super(message,id);
}
}
}

View File

@ -0,0 +1,146 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<application xmlns="http://ns.adobe.com/air/application/2.0">
<!-- Adobe AIR Application Descriptor File Template.
Specifies parameters for identifying, installing, and launching AIR applications.
xmlns - The Adobe AIR namespace: http://ns.adobe.com/air/application/2.0
The last segment of the namespace specifies the version
of the AIR runtime required for this application to run.
minimumPatchLevel - The minimum patch level of the AIR runtime required to run
the application. Optional.
-->
<!-- A universally unique application identifier. Must be unique across all AIR applications.
Using a reverse DNS-style name as the id is recommended. (Eg. com.example.ExampleApplication.) Required. -->
<id>AirExecutorApp</id>
<!-- Used as the filename for the application. Required. -->
<filename>AirExecutorApp</filename>
<!-- The name that is displayed in the AIR application installer.
May have multiple values for each language. See samples or xsd schema file. Optional. -->
<name>AirExecutorApp</name>
<!-- An application version designator (such as "v1", "2.5", or "Alpha 1"). Required. -->
<version>v1</version>
<!-- Description, displayed in the AIR application installer.
May have multiple values for each language. See samples or xsd schema file. Optional. -->
<!-- <description></description> -->
<!-- Copyright information. Optional -->
<!-- <copyright></copyright> -->
<!-- Publisher ID. Used if you're updating an application created prior to 1.5.3 -->
<!-- <publisherID></publisherID> -->
<!-- Settings for the application's initial window. Required. -->
<initialWindow>
<!-- The main SWF or HTML file of the application. Required. -->
<!-- Note: In Flash Builder, the SWF reference is set automatically. -->
<content>AirExecutorApp.swf</content>
<!-- The title of the main window. Optional. -->
<!-- <title></title> -->
<!-- The type of system chrome to use (either "standard" or "none"). Optional. Default standard. -->
<!-- <systemChrome></systemChrome> -->
<!-- Whether the window is transparent. Only applicable when systemChrome is none. Optional. Default false. -->
<!-- <transparent></transparent> -->
<!-- Whether the window is initially visible. Optional. Default false. -->
<!-- <visible></visible> -->
<!-- Whether the user can minimize the window. Optional. Default true. -->
<!-- <minimizable></minimizable> -->
<!-- Whether the user can maximize the window. Optional. Default true. -->
<!-- <maximizable></maximizable> -->
<!-- Whether the user can resize the window. Optional. Default true. -->
<!-- <resizable></resizable> -->
<!-- The window's initial width in pixels. Optional. -->
<!-- <width></width> -->
<!-- The window's initial height in pixels. Optional. -->
<!-- <height></height> -->
<!-- The window's initial x position. Optional. -->
<!-- <x></x> -->
<!-- The window's initial y position. Optional. -->
<!-- <y></y> -->
<!-- The window's minimum size, specified as a width/height pair in pixels, such as "400 200". Optional. -->
<!-- <minSize></minSize> -->
<!-- The window's initial maximum size, specified as a width/height pair in pixels, such as "1600 1200". Optional. -->
<!-- <maxSize></maxSize> -->
</initialWindow>
<!-- We recommend omitting the supportedProfiles element, -->
<!-- which in turn permits your application to be deployed to all -->
<!-- devices supported by AIR. If you wish to restrict deployment -->
<!-- (i.e., to only mobile devices) then add this element and list -->
<!-- only the profiles which your application does support. -->
<!-- <supportedProfiles>desktop extendedDesktop mobileDevice extendedMobileDevice</supportedProfiles> -->
<!-- The subpath of the standard default installation location to use. Optional. -->
<!-- <installFolder></installFolder> -->
<!-- The subpath of the Programs menu to use. (Ignored on operating systems without a Programs menu.) Optional. -->
<!-- <programMenuFolder></programMenuFolder> -->
<!-- The icon the system uses for the application. For at least one resolution,
specify the path to a PNG file included in the AIR package. Optional. -->
<!-- <icon>
<image16x16></image16x16>
<image32x32></image32x32>
<image48x48></image48x48>
<image128x128></image128x128>
</icon> -->
<!-- Whether the application handles the update when a user double-clicks an update version
of the AIR file (true), or the default AIR application installer handles the update (false).
Optional. Default false. -->
<!-- <customUpdateUI></customUpdateUI> -->
<!-- Whether the application can be launched when the user clicks a link in a web browser.
Optional. Default false. -->
<!-- <allowBrowserInvocation></allowBrowserInvocation> -->
<!-- Listing of file types for which the application can register. Optional. -->
<!-- <fileTypes> -->
<!-- Defines one file type. Optional. -->
<!-- <fileType> -->
<!-- The name that the system displays for the registered file type. Required. -->
<!-- <name></name> -->
<!-- The extension to register. Required. -->
<!-- <extension></extension> -->
<!-- The description of the file type. Optional. -->
<!-- <description></description> -->
<!-- The MIME content type. -->
<!-- <contentType></contentType> -->
<!-- The icon to display for the file type. Optional. -->
<!-- <icon>
<image16x16></image16x16>
<image32x32></image32x32>
<image48x48></image48x48>
<image128x128></image128x128>
</icon> -->
<!-- </fileType> -->
<!-- </fileTypes> -->
</application>

View File

@ -0,0 +1,255 @@
package io.swagger.common {
import io.swagger.event.ApiClientEvent;
import io.swagger.event.Response;
public class ApiInvoker extends EventDispatcher {
private static const DELETE_DATA_DUMMY:String = "dummyDataRequiredForDeleteOverride";
private static const X_HTTP_OVERRIDE_KEY:String = "X-HTTP-Method-Override";
private static const CONTENT_TYPE_HEADER_KEY:String = "Content-Type";
public function ApiInvoker(apiUsageCredentials:ApiUserCredentials, eventNotifier:EventDispatcher, useProxy:Boolean = true) {
_apiUsageCredentials = apiUsageCredentials;
_useProxyServer = useProxy;
if (_apiUsageCredentials.hostName != null) {
_proxyHostName = _apiUsageCredentials.hostName;
}
_apiPath = _apiUsageCredentials.apiPath;
_proxyPath = _apiUsageCredentials.proxyPath;
_apiProxyServerUrl = _apiUsageCredentials.apiProxyServerUrl;
_apiEventNotifier = eventNotifier;
}
public var _apiEventNotifier:EventDispatcher;
internal var _apiProxyServerUrl:String = "";
internal var _useProxyServer:Boolean = true;
private var _apiUsageCredentials:ApiUserCredentials;
private var _baseUrl:String = "";
private var _proxyHostName:String = "";
private var _apiPath:String = "";
private var _proxyPath:String = "";
public function invokeAPI(resourceURL:String, method:String, queryParams:Dictionary, postObject:Object, headerParams:Dictionary):AsyncToken {
//make the communication
if (_useProxyServer) {
resourceURL = _apiProxyServerUrl + resourceURL;
}
else {
resourceURL = "http://" + _proxyHostName + _apiPath + resourceURL;
}
var counter:int = 0;
var symbol:String = "&";
var paramValue:Object;
for (var paramName:String in queryParams) {
paramValue = queryParams[paramName];
//var key:String = paramName;
// do stuff
symbol = "&";
if (counter == 0) {
symbol = "?";
}
resourceURL = resourceURL + symbol + paramName + "=" + paramValue.toString();
counter++;
}
// trace(resourceURL);
//create a httpservice and invoke the rest url waiting for response
var requestHeader:Object = new Object();
if (headerParams != null) {
for (var key:String in headerParams) {
requestHeader[key] = headerParams[key];
}
}
resourceURL = ApiUrlHelper.appendTokenInfo(resourceURL, requestHeader, _apiUsageCredentials);
var bodyData:String = marshal(postObject).toString();//restRequest.postData;
return doRestCall(resourceURL, onApiRequestResult, onApiRequestFault, method, bodyData, requestHeader, "application/xml");
}
public function marshal(source:Object):Object {
// trace("marshal got - " + source)
if (source is String) {
return source;
} else if (source is Array && source.length > 0) {
var writer:XMLWriter = new XMLWriter();
var sourceArray:Array = source as Array;
var arrayEnclosure:String = getArrayEnclosure(sourceArray);
writer.xml.setName(arrayEnclosure);
for (var i:int = 0; i < sourceArray.length; i++) {
var o:Object = sourceArray[i];
writer.xml.appendChild(marshal(o));
}
return writer.xml;
} else
return marshalObject(source);
}
public function marshalObject(source:Object):XML {
var writer:XMLWriter = new XMLWriter();
var objDescriptor:XML = describeType(source);
var property:XML;
var propertyType:String;
var propertyValue:Object;
var qualifiedClassName:String = objDescriptor.@name;
qualifiedClassName = qualifiedClassName.replace("::", ".");
var className:String = qualifiedClassName.substring(qualifiedClassName.lastIndexOf(".") + 1);
className = className().toLowerCase() + className.substring(1);
writer.xml.setName(className);
for each(property in objDescriptor.elements("variable")) {
propertyValue = source[property.@name];
if (propertyValue != null) {
if (ObjectUtil.isSimple(propertyValue)) {
writer.addProperty(property.@name, propertyValue.toString());
}
else {
writer.addProperty(property.@name, marshal(propertyValue).toXMLString());
}
}
}
for each(property in objDescriptor.elements("accessor")) {
if (property.@access == "readonly") {
continue;
}
propertyValue = source[property.@name];
if (source[property.@name] != null) {
if (ObjectUtil.isSimple(propertyValue)) {
writer.addProperty(property.@name, propertyValue.toString());
}
else {
writer.addProperty(property.@name, marshal(propertyValue).toXMLString());
}
}
}
return writer.xml;
}
public function escapeString(str:String):String {
return str;
}
private function doRestCall(url:String, resultFunction:Function, faultFunction:Function = null,
restMethod:String = "GET",
bodyData:Object = null, headers:Object = null, contentType:String = "application/xml"):AsyncToken {
var httpService:HTTPService = new HTTPService();
if (headers == null) {
headers = new Object();
}
httpService.method = restMethod;
if (restMethod.toUpperCase() != HTTPRequestMessage.GET_METHOD) {
//httpService.method = HTTPRequestMessage.POST_METHOD; - not required as we're using the proxy
if (bodyData == null) {
bodyData = new Object();
}
if (restMethod == HTTPRequestMessage.DELETE_METHOD) {
headers[X_HTTP_OVERRIDE_KEY] = HTTPRequestMessage.DELETE_METHOD;
bodyData = DELETE_DATA_DUMMY;
}
else if (restMethod == HTTPRequestMessage.PUT_METHOD) {
headers[X_HTTP_OVERRIDE_KEY] = HTTPRequestMessage.PUT_METHOD;
}
else {
headers[CONTENT_TYPE_HEADER_KEY] = contentType;
}
}
else {
//if the request type is GET and content type is xml then the Flex HTTPService converts it to a POST ... yeah
contentType = null;
}
httpService.url = url;
httpService.contentType = contentType;
httpService.resultFormat = "e4x";
httpService.headers = headers;
httpService.addEventListener(ResultEvent.RESULT, resultFunction);
if (faultFunction != null) {
httpService.addEventListener(FaultEvent.FAULT, faultFunction);
}
if (_useProxyServer) {
httpService.useProxy = true;
var channelSet:ChannelSet = new ChannelSet();
var httpChannel:HTTPChannel = new HTTPChannel();
httpChannel.uri = ApiUrlHelper.getProxyUrl(_proxyHostName, _proxyPath);
channelSet.addChannel(httpChannel);
httpService.channelSet = channelSet;
}
return httpService.send(bodyData);
}
private function onApiRequestResult(event:ResultEvent):void {
var completionListener:Function = event.token.completionListener;
var result:Object = event.result;
var resultType:Class = event.token.returnType;
var resultObject:Object;
if (resultType != null) {
var context:ASAXBContext = ASAXBContext.newInstance(resultType);
var unmarshaller:Unmarshaller = context.createUnmarshaller();
var resultXML:XML = new XML(event.result);
try {
resultObject = unmarshaller.unmarshal(resultXML);
}
catch (error:TypeError) {
var errorResponse:Response = new Response(false, null, "Could not unmarshall response");
if (_apiEventNotifier != null) { //dispatch event via assigned dispatcher
var failureEvent:ApiClientEvent = new ApiClientEvent(event.token.completionEventType);
failureEvent.response = errorResponse;
_apiEventNotifier.dispatchEvent(failureEvent);
}
}
if (resultObject is ListWrapper) {
resultObject = ListWrapper(resultObject).getList();
}
}
var response:Response = new Response(true, resultObject);
response.requestId = event.token.requestId;
var successEventType:String = event.token.completionEventType != null ? event.token.completionEventType : ApiClientEvent.SUCCESS_EVENT;
if (_apiEventNotifier != null) { //dispatch event via assigned dispatcher
var successEvent:ApiClientEvent = new ApiClientEvent(successEventType);
successEvent.response = response;
_apiEventNotifier.dispatchEvent(successEvent);
}
}
private function onApiRequestFault(event:FaultEvent):void {
var completionListener:Function = event.token.completionListener;
if (completionListener != null) {
completionListener.call(null, new Response(false, null, event.fault.faultString));
}
var failureEventType:String = event.token.completionEventType != null ? event.token.completionEventType : ApiClientEvent.FAILURE_EVENT;
if (_apiEventNotifier != null) { //dispatch event via assigned dispatcher
var failureEvent:ApiClientEvent = new ApiClientEvent(failureEventType);
failureEvent.response = new Response(false, null, event.fault.faultString);
_apiEventNotifier.dispatchEvent(failureEvent);
}
}
private function getArrayEnclosure(arr:Array):String {
if (arr != null && arr.length > 0) {
var className:String = flash.utils.getQualifiedClassName(arr[0])
if (className.indexOf("::") > 0)
className = className.substr(className.indexOf("::") + 2, className.length)
return className.substring(0, 1).toLowerCase() + className.substring(1, className.length) + "s";
} else
return "";
}
}
}

View File

@ -0,0 +1,41 @@
package io.swagger.common {
import io.swagger.common.ApiUserCredentials;
/**
* @private
* Internal class for the Rest client
*/
internal class ApiUrlHelper {
private static const API_URL_KEY:String = "api_key";
private static const AUTH_TOKEN_URL_KEY:String = "auth_token";
private static const HTTP_URL_PREFIX:String = "http://";
internal static function appendTokenInfo(restUrl:String, requestHeader: Object, credentials: ApiUserCredentials): String {
//checks for the presence api credentials on client initialization and not repeated here
if(restUrl.indexOf("?") == -1){
restUrl += ( "?" + API_URL_KEY + "=" + credentials.apiToken );
}
else{
restUrl += ( "&" + API_URL_KEY + "=" + credentials.apiToken );
}
requestHeader.api_key = credentials.apiToken;
if(credentials.authToken != null && credentials.authToken != ""){
restUrl += ( "&" + AUTH_TOKEN_URL_KEY + "=" + credentials.authToken );
requestHeader.auth_token = credentials.authToken;
}
return restUrl;
}
internal static function getProxyUrl(hostName: String, proxyPath: String): String{
if (hostName(hostName.length - 1) == "/") //remove trailing slash
{
hostName = hostName.substring(0, hostName.length - 1);
}
return HTTP_URL_PREFIX + hostName + proxyPath;
}
}
}

View File

@ -0,0 +1,63 @@
package io.swagger.common {
/**
* Api account credentials.
*
*/
public class ApiUserCredentials {
/**
* An apitoken that is passed along with the requests
*/
public var apiToken:String;
/**
* A valid auth_token which could be necessary for certain operations
*/
public var authToken:String;
/**
* The userId which could be required for certain operations
*/
public var userId:Number;
/**
* The host name for the Rest API eg. api.companyName.com
*/
public var hostName:String;
/**
* The base path to the api resources - used along with the hostname
* eg. /v4
*/
public var apiPath: String;
/**
* The base path to the blazeds proxy
* eg. /v4/messagebroker/restproxy
*/
public var proxyPath: String;
/**
* If a proxy server has been set up for the services specify the URL here. This value is used when the Api is invoked with
* the value useProxy as true
*/
public var apiProxyServerUrl: String;
/**
* Constructor of ApiUserCredentials
* @param apiToken An apitoken that is passed along with the requests
* @param authToken A valid auth_token which could necessary for certain operations
* @param hostName The host name for the Rest API eg. api.companyName.com
* @param userId The userId which is required for certain operations - currently, get user lists
*/
public function ApiUserCredentials(hostName: String, apiPath: String, apiToken: String,
authToken: String = null, userId: Number = -1, apiProxyServerUrl: String="",
proxyPath: String = null) {
this.hostName = hostName;
this.apiToken = apiToken;
this.authToken = authToken;
this.userId = userId;
this.apiPath = apiPath;
this.apiProxyServerUrl = apiProxyServerUrl;
this.proxyPath = proxyPath;
}
}
}

View File

@ -0,0 +1,75 @@
package io.swagger.common
{
import io.swagger.common.ApiUserCredentials;
import flash.events.EventDispatcher;
import flash.events.IEventDispatcher;
import mx.utils.UIDUtil;
public class SwaggerApi extends EventDispatcher
{
protected var _apiUsageCredentials:ApiUserCredentials;
protected var _apiEventNotifier:EventDispatcher;
protected var _apiInvoker: ApiInvoker;
protected var _useProxyServer: Boolean = false;
/**
* Constructor for the api client
* @param apiCredentials Wrapper object for tokens and hostName required towards authentication
* @param eventDispatcher Optional event dispatcher that when provided is used by the SDK to dispatch any Response
*/
public function SwaggerApi(apiCredentials: ApiUserCredentials, eventDispatcher: EventDispatcher = null) {
super();
_apiUsageCredentials = apiCredentials;
_apiEventNotifier = eventDispatcher;
}
public function useProxyServer(value:Boolean, proxyServerUrl: String = null):void {
_useProxyServer = value;
}
protected function getApiInvoker():ApiInvoker {
if(_apiInvoker == null){
if(_apiEventNotifier == null){
_apiEventNotifier = this;
}
_apiInvoker = new ApiInvoker(_apiUsageCredentials, _apiEventNotifier, _useProxyServer);
}
return _apiInvoker;
}
protected function getUniqueId():String {
return UIDUtil.createUID();
}
/**
* Method for returning the path value
* For a string value an empty value is returned if the value is null
* @param value
* @return
*/
protected static function toPathValue(value: Object): String {
if(value is Array){
return arrayToPathValue(value as Array);
}
return value == null ? "" : value.toString();
}
/**
* Method for returning a path value
* For a list of objects a comma separated string is returned
* @param objects
* @return
*/
protected static function arrayToPathValue(objects: Array): String {
var out: String = "";
return objects.join(",");
}
}
}

View File

@ -0,0 +1,28 @@
package io.swagger.common
{
public class XMLWriter
{
public var xml:XML;
public function XMLWriter()
{
xml=<obj/>;
}
public function reset():void {
xml=new XML();
}
public function addProperty(propertyName:String, propertyValue:String):XML {
var xmlProperty:XML=<new/>
xmlProperty.setName(propertyName);
xmlProperty.appendChild(propertyValue);
xml.appendChild(xmlProperty);
return xmlProperty;
}
public function addAttribute(propertyName:String, attribute:String, attributeValue:String):void {
xml.elements(propertyName)[0].@[attribute]=attributeValue;
}
}
}

View File

@ -0,0 +1,36 @@
package io.swagger.event {
import io.swagger.event.Response;
import flash.events.Event;
/**
* Event dispatched by the SDK to communicate success events and failure events.
* If a custom dispatcher has been assigned by the consumer on the generated client then the dispatcher dispatches
* the ApiClientEvent to indicate success or failure of the invocation using the Response
*/
public class ApiClientEvent extends Event{
/**
* Event type to indicate a unsuccessful invocation
*/
public static const FAILURE_EVENT:String = "unsuccesfulInvocation";
/**
* Event type to indicate a successful invocation
*/
public static const SUCCESS_EVENT:String = "successfulInvocation";
/**
* The Response object which contains response info
*/
public var response: Response;
/**
* Any additional info
*/
public var message:String;
public function ApiClientEvent(type:String,bubbles:Boolean = false,cancelable:Boolean = false) {
super(type, bubbles, cancelable);
}
}
}

View File

@ -0,0 +1,56 @@
package io.swagger.event {
/**
* Response contains info on the result of an API invocation.
* A completion listener will expect this Response object.
*/
public class Response {
/**
* Indicates whether the invoked operation failed or succeeded
*/
public var isSuccess:Boolean;
/**
* The payload of the succesful operation eg. a Word in a WordRequest
*/
public var payload:Object;
/**
* Error message in case of failure
*/
public var errorMessage:String;
/**
* A request Id that was passed in by the user as a param when invoking the operation
*/
public var requestId:String;
private static const API_ERROR_MSG:String = "Api error response: ";
public function Response(isSuccessful: Boolean, payload: Object = null, errorMessage: String = null, requestId: String = null) {
this.isSuccess = isSuccessful;
this.payload = payload;
this.errorMessage = getFriendlyMessage(errorMessage);
}
private static function getFriendlyMessage(errorMessage: String): String{
var result: String = errorMessage;
if(errorMessage == null)
return null;
var errorCode: String;
var errorCodeArray: Array = errorMessage.match(/(?<=HTTP\/1.1 )[0-9][0-9][0-9]/);
if(errorCodeArray != null && errorCodeArray.length == 1){
errorCode = String(errorCodeArray[0]);
}
var msgArray: Array = errorMessage.match(/(?<=HTTP\/1.1 [0-9][0-9][0-9] )[^]*/);
if(msgArray != null && msgArray.length == 1){
result = API_ERROR_MSG + String(msgArray[0]);
}
return result;
}
public function toString(): String {
return "Response (requestId:" + requestId + "; isSuccess:" + isSuccess + "; errorMessage:" + errorMessage + "; payload:" + payload + ")";
}
}
}

View File

@ -0,0 +1,34 @@
package io.swagger.exception
{
public class ApiErrorCodes
{
/**
* System exception.
*/
public static const SYSTEM_EXCEPTION: Number = 0;
/**
* With Arguments as current key.
*/
public static const API_KEY_NOT_VALID: Number = 1000;
/**
* With arguments as current token value
*/
public static const AUTH_TOKEN_NOT_VALID: Number = 1001;
/**
* With arguments as input JSON and output class anme
*/
public static const ERROR_CONVERTING_JSON_TO_JAVA: Number = 1002;
/**
* With arguments as JAVA class name
*/
public static const ERROR_CONVERTING_JAVA_TO_JSON: Number = 1003;
public static const ERROR_FROM_WEBSERVICE_CALL: Number = 1004;
/**
* With arguments as current API server name
*/
public static const API_SERVER_NOT_VALID: Number = 1005;
}
}

View File

@ -0,0 +1,276 @@
package src/main/flex/io.swagger/client/api {
import io.swagger.common.ApiInvoker;
import io.swagger.exception.ApiErrorCodes;
import io.swagger.exception.ApiError;
import io.swagger.common.ApiUserCredentials;
import io.swagger.event.Response;
import io.swagger.common.SwaggerApi;
import src/main/flex/io.swagger/client/model.Pet;
import java.io.File;
import mx.rpc.AsyncToken;
import mx.utils.UIDUtil;
import flash.utils.Dictionary;
import flash.events.EventDispatcher;
public class PetApi extends SwaggerApi {
/**
* Constructor for the PetApi api client
* @param apiCredentials Wrapper object for tokens and hostName required towards authentication
* @param eventDispatcher Optional event dispatcher that when provided is used by the SDK to dispatch any Response
*/
public function PetApi(apiCredentials: ApiUserCredentials, eventDispatcher: EventDispatcher = null) {
super(apiCredentials, eventDispatcher);
}
public static const event_update_pet: String = "update_pet";
public static const event_add_pet: String = "add_pet";
public static const event_find_pets_by_status: String = "find_pets_by_status";
public static const event_find_pets_by_tags: String = "find_pets_by_tags";
public static const event_get_pet_by_id: String = "get_pet_by_id";
public static const event_update_pet_with_form: String = "update_pet_with_form";
public static const event_delete_pet: String = "delete_pet";
public static const event_upload_file: String = "upload_file";
/*
* Returns void
*/
public function update_pet (body: Pet): String {
// create path and map variables
var path: String = "/pet".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "PUT", queryParams, io.swagger.codegen.CodegenParameter@4afa1477, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "update_pet";
token.returnType = null ;
return requestId;
}
/*
* Returns void
*/
public function add_pet (body: Pet): String {
// create path and map variables
var path: String = "/pet".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "POST", queryParams, io.swagger.codegen.CodegenParameter@6855b715, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "add_pet";
token.returnType = null ;
return requestId;
}
/*
* Returns Array[Pet]
*/
public function find_pets_by_status (status: Array[String] = available): String {
// create path and map variables
var path: String = "/pet/findByStatus".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
if("null" != String(status))
queryParams["status"] = toPathValue(status);
var token:AsyncToken = getApiInvoker().invokeAPI(path, "GET", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "find_pets_by_status";
token.returnType = Array[Pet];
return requestId;
}
/*
* Returns Array[Pet]
*/
public function find_pets_by_tags (tags: Array[String]): String {
// create path and map variables
var path: String = "/pet/findByTags".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
if("null" != String(tags))
queryParams["tags"] = toPathValue(tags);
var token:AsyncToken = getApiInvoker().invokeAPI(path, "GET", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "find_pets_by_tags";
token.returnType = Array[Pet];
return requestId;
}
/*
* Returns Pet
*/
public function get_pet_by_id (pet_id: Number): String {
// create path and map variables
var path: String = "/pet/{petId}".replace(/{format}/g,"xml").replace("{" + "pet_id" + "}", getApiInvoker().escapeString(pet_id));
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "GET", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "get_pet_by_id";
token.returnType = Pet;
return requestId;
}
/*
* Returns void
*/
public function update_pet_with_form (pet_id: String, name: String, status: String): String {
// create path and map variables
var path: String = "/pet/{petId}".replace(/{format}/g,"xml").replace("{" + "pet_id" + "}", getApiInvoker().escapeString(pet_id));
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "POST", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "update_pet_with_form";
token.returnType = null ;
return requestId;
}
/*
* Returns void
*/
public function delete_pet (pet_id: Number, api_key: String): String {
// create path and map variables
var path: String = "/pet/{petId}".replace(/{format}/g,"xml").replace("{" + "pet_id" + "}", getApiInvoker().escapeString(pet_id));
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
headerParams["api_key"] = toPathValue(api_key);
var token:AsyncToken = getApiInvoker().invokeAPI(path, "DELETE", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "delete_pet";
token.returnType = null ;
return requestId;
}
/*
* Returns void
*/
public function upload_file (pet_id: Number, additional_metadata: String, file: File): String {
// create path and map variables
var path: String = "/pet/{petId}/uploadImage".replace(/{format}/g,"xml").replace("{" + "pet_id" + "}", getApiInvoker().escapeString(pet_id));
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "POST", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "upload_file";
token.returnType = null ;
return requestId;
}
}
}

View File

@ -0,0 +1,151 @@
package src/main/flex/io.swagger/client/api {
import io.swagger.common.ApiInvoker;
import io.swagger.exception.ApiErrorCodes;
import io.swagger.exception.ApiError;
import io.swagger.common.ApiUserCredentials;
import io.swagger.event.Response;
import io.swagger.common.SwaggerApi;
import src/main/flex/io.swagger/client/model.Dictionary;
import src/main/flex/io.swagger/client/model.Order;
import mx.rpc.AsyncToken;
import mx.utils.UIDUtil;
import flash.utils.Dictionary;
import flash.events.EventDispatcher;
public class StoreApi extends SwaggerApi {
/**
* Constructor for the StoreApi api client
* @param apiCredentials Wrapper object for tokens and hostName required towards authentication
* @param eventDispatcher Optional event dispatcher that when provided is used by the SDK to dispatch any Response
*/
public function StoreApi(apiCredentials: ApiUserCredentials, eventDispatcher: EventDispatcher = null) {
super(apiCredentials, eventDispatcher);
}
public static const event_get_inventory: String = "get_inventory";
public static const event_place_order: String = "place_order";
public static const event_get_order_by_id: String = "get_order_by_id";
public static const event_delete_order: String = "delete_order";
/*
* Returns Dictionary(str, Number)
*/
public function get_inventory (): String {
// create path and map variables
var path: String = "/store/inventory".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "GET", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "get_inventory";
token.returnType = Dictionary(str, Number);
return requestId;
}
/*
* Returns Order
*/
public function place_order (body: Order): String {
// create path and map variables
var path: String = "/store/order".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "POST", queryParams, io.swagger.codegen.CodegenParameter@5366f936, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "place_order";
token.returnType = Order;
return requestId;
}
/*
* Returns Order
*/
public function get_order_by_id (order_id: String): String {
// create path and map variables
var path: String = "/store/order/{orderId}".replace(/{format}/g,"xml").replace("{" + "order_id" + "}", getApiInvoker().escapeString(order_id));
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "GET", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "get_order_by_id";
token.returnType = Order;
return requestId;
}
/*
* Returns void
*/
public function delete_order (order_id: String): String {
// create path and map variables
var path: String = "/store/order/{orderId}".replace(/{format}/g,"xml").replace("{" + "order_id" + "}", getApiInvoker().escapeString(order_id));
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "DELETE", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "delete_order";
token.returnType = null ;
return requestId;
}
}
}

View File

@ -0,0 +1,275 @@
package src/main/flex/io.swagger/client/api {
import io.swagger.common.ApiInvoker;
import io.swagger.exception.ApiErrorCodes;
import io.swagger.exception.ApiError;
import io.swagger.common.ApiUserCredentials;
import io.swagger.event.Response;
import io.swagger.common.SwaggerApi;
import src/main/flex/io.swagger/client/model.User;
import java.util.List;
import mx.rpc.AsyncToken;
import mx.utils.UIDUtil;
import flash.utils.Dictionary;
import flash.events.EventDispatcher;
public class UserApi extends SwaggerApi {
/**
* Constructor for the UserApi api client
* @param apiCredentials Wrapper object for tokens and hostName required towards authentication
* @param eventDispatcher Optional event dispatcher that when provided is used by the SDK to dispatch any Response
*/
public function UserApi(apiCredentials: ApiUserCredentials, eventDispatcher: EventDispatcher = null) {
super(apiCredentials, eventDispatcher);
}
public static const event_create_user: String = "create_user";
public static const event_create_users_with_array_input: String = "create_users_with_array_input";
public static const event_create_users_with_list_input: String = "create_users_with_list_input";
public static const event_login_user: String = "login_user";
public static const event_logout_user: String = "logout_user";
public static const event_get_user_by_name: String = "get_user_by_name";
public static const event_update_user: String = "update_user";
public static const event_delete_user: String = "delete_user";
/*
* Returns void
*/
public function create_user (body: User): String {
// create path and map variables
var path: String = "/user".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "POST", queryParams, io.swagger.codegen.CodegenParameter@d3d7fa1, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "create_user";
token.returnType = null ;
return requestId;
}
/*
* Returns void
*/
public function create_users_with_array_input (body: Array[User]): String {
// create path and map variables
var path: String = "/user/createWithArray".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "POST", queryParams, io.swagger.codegen.CodegenParameter@408629d1, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "create_users_with_array_input";
token.returnType = null ;
return requestId;
}
/*
* Returns void
*/
public function create_users_with_list_input (body: Array[User]): String {
// create path and map variables
var path: String = "/user/createWithList".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "POST", queryParams, io.swagger.codegen.CodegenParameter@2823796f, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "create_users_with_list_input";
token.returnType = null ;
return requestId;
}
/*
* Returns String
*/
public function login_user (username: String, password: String): String {
// create path and map variables
var path: String = "/user/login".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
if("null" != String(username))
queryParams["username"] = toPathValue(username);
if("null" != String(password))
queryParams["password"] = toPathValue(password);
var token:AsyncToken = getApiInvoker().invokeAPI(path, "GET", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "login_user";
token.returnType = String;
return requestId;
}
/*
* Returns void
*/
public function logout_user (): String {
// create path and map variables
var path: String = "/user/logout".replace(/{format}/g,"xml");
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "GET", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "logout_user";
token.returnType = null ;
return requestId;
}
/*
* Returns User
*/
public function get_user_by_name (username: String): String {
// create path and map variables
var path: String = "/user/{username}".replace(/{format}/g,"xml").replace("{" + "username" + "}", getApiInvoker().escapeString(username));
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "GET", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "get_user_by_name";
token.returnType = User;
return requestId;
}
/*
* Returns void
*/
public function update_user (username: String, body: User): String {
// create path and map variables
var path: String = "/user/{username}".replace(/{format}/g,"xml").replace("{" + "username" + "}", getApiInvoker().escapeString(username));
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "PUT", queryParams, io.swagger.codegen.CodegenParameter@30f97aff, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "update_user";
token.returnType = null ;
return requestId;
}
/*
* Returns void
*/
public function delete_user (username: String): String {
// create path and map variables
var path: String = "/user/{username}".replace(/{format}/g,"xml").replace("{" + "username" + "}", getApiInvoker().escapeString(username));
// query params
var queryParams: Dictionary = new Dictionary();
var headerParams: Dictionary = new Dictionary();
var token:AsyncToken = getApiInvoker().invokeAPI(path, "DELETE", queryParams, null, headerParams);
var requestId: String = getUniqueId();
token.requestId = requestId;
token.completionEventType = "delete_user";
token.returnType = null ;
return requestId;
}
}
}

Some files were not shown because too many files have changed in this diff Show More