Merge pull request #5923 from tigerxy/master

jquery.soap and js-md5 added
This commit is contained in:
Masahiro Wakame
2015-10-05 23:03:23 +09:00
4 changed files with 431 additions and 0 deletions
+296
View File
@@ -0,0 +1,296 @@
/// <reference path="jquery.soap.d.ts"/>
$.soap({
url: 'http://my.server.com/soapservices/',
method: 'helloWorld',
data: {
name: 'Remy Blom',
msg: 'Hi!'
},
success: function(soapResponse) {
// do stuff with soapResponse
// if you want to have the response as JSON use soapResponse.toJSON();
// or soapResponse.toString() to get XML string
// or soapResponse.toXML() to get XML DOM
},
error: function(SOAPResponse) {
// show error
}
});
$.soap({
url: 'http://my.server.com/soapservices/', //endpoint address for the service
method: 'helloWorld', // service operation name
// 1) will be appended to url if appendMethodToURL=true
// 2) will be used for request element name when building xml from JSON 'params' (unless 'elementName' is provided)
// 3) will be used to set SOAPAction request header if no SOAPAction is specified
appendMethodToURL: true, // method name will be appended to URL defaults to true
SOAPAction: 'action', // manually set the Request Header 'SOAPAction', defaults to the method specified above (optional)
soap12: false, // use SOAP 1.2 namespace and HTTP headers - default to false
context: document.body, // Used to set this in beforeSend, success, error and data callback functions
// addional headers and namespaces
envAttributes: { // additional attributes (like namespaces) for the Envelope:
'xmlns:another': 'http://anotherNamespace.com/'
},
HTTPHeaders: { // additional http headers send with the $.ajax call, will be given to $.ajax({ headers: })
'Authorization': 'Basic ' + btoa('user:pass')
},
//data can be XML DOM, XML String, JSON or a function
data: { // JSON structure used to build request XML - SHOULD be coupled with ('namespaceQualifier' AND 'namespaceURL') AND ('method' OR 'elementName')
name: 'Remy Blom',
msg: 'Hi!'
},
//these options ONLY apply when the request XML is going to be built from JSON 'params'
namespaceQualifier: 'myns', // used as namespace prefix for all elements in request (optional)
namespaceURL: 'urn://service.my.server.com', // namespace url added to parent request element (optional)
noPrefix: false, // set to true if you don't want the namespaceQualifier to be the prefix for the nodes in params. defaults to false (optional)
elementName: 'requestElementName', // override 'method' as outer element (optional)
//callback functions
beforeSend: function(SOAPEnvelope) { }, // callback function - SOAPEnvelope object is passed back prior to ajax call (optional)
success: function(SOAPResponse) { }, // callback function to handle successful return (optional)
error: function(SOAPResponse) { }, // callback function to handle fault return (optional)
statusCode: { // callback functions based on statusCode
404: function() {
console.log('404 Not Found')
},
200: function() {
console.log('200 OK')
}
},
// WS-Security
wss: {
username: 'user',
password: 'pass',
nonce: 'w08370jf7340qephufqp3r4',
created: new Date().getTime()
},
// debugging
enableLogging: false // to enable the local log function set to true, defaults to false (optional)
})
$.soap({
}).done(function(data, textStatus, jqXHR) {
// do stuff on success here...
}).fail(function(jqXHR, textStatus, errorThrown) {
// do stuff on error here...
})
$.soap({
url: 'http://my.server.com/soapservices/',
namespaceQualifier: 'myns',
namespaceURL: 'urn://service.my.server.com',
error: function(soapResponse) {
// show error
}
});
$.soap({
method: 'helloWorld',
data: {
name: 'Remy Blom',
msg: 'Hi!'
},
success: function(soapResponse) {
// do stuff with soapResponse
}
});
$.soap({
method: 'doSomethingElse',
data: {},
success: function(soapResponse) {
// do stuff with soapResponse
}
});
$.soap({
url: 'http://another.server.com/anotherService',
method: 'helloWorld',
data: {
name: 'Remy Blom',
msg: 'Hi!'
},
success: function(soapResponse) {
// do stuff with soapResponse
},
error: function(soapResponse) {
alert('that other server might be down...')
}
});
$.soap({
// other parameters..
// WS-Security
wss: {
username: 'user',
password: 'pass',
nonce: 'w08370jf7340qephufqp3r4',
created: new Date().getTime()
}
});
var username = 'foo';
var password = 'bar';
$.soap({
// other parameters...
HTTPHeaders: {
Authorization: 'Basic ' + btoa(username + ':' + password)
}
});
// jquery.soap/doc/options.md
$.soap({
url: 'http://server.com/webServices/',
method: 'getItem',
appendMethodToURL: false
})
$.soap({
beforeSend: function(SOAPEnvelope) {
console.log(SOAPEnvelope.toString());
}
});
$.soap({
context: document.body,
success: function(SOAPResponse) {
console.log(this);
}
});
var xml =
['<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope/">',
'<soap:Body>',
'<requestNode>',
'</requestNode>',
'</soap:Body>',
'</soap:Envelope>'];
$.soap({
data: xml.join('')
});
$.soap({
method: 'requestNode',
data: {
name: 'Remy Blom',
msg: 'Hi!'
}
});
$.soap({
envAttributes: {
'xmlns:another': 'http://anotherNamespace.com/'
}
})
$.soap({
method: 'helloWorld',
elementName: 'requestNode'
})
$.soap({
enableLogging: true
})
$.soap({
error: function(SOAPResponse) {
console.log(SOAPResponse.toString())
}
})
$.soap({
HTTPHeaders: {
'Authorization': 'Basic ' + btoa('user:pass')
}
})
$.soap({
url: 'http://server.com/webServices/',
method: 'getItem'
})
$.soap({
method: 'helloWorld',
namespaceQualifier: 'myns',
namespaceURL: 'urn://service.my.server.com'
})
$.soap({
method: 'helloWorld',
namespaceQualifier: 'myns',
namespaceURL: 'urn://service.my.server.com'
})
$.soap({
method: 'helloWorld',
namespaceQualifier: 'myns',
namespaceURL: 'urn://service.my.server.com',
noPrefix: true
})
$.soap({
request: function(SOAPEnvelope) {
console.log(SOAPEnvelope.toString());
}
})
$.soap({
soap12: true
})
$.soap({
url: 'http://server.com/webServices/',
method: 'getItem',
SOAPAction: 'getAnItem'
})
$.soap({
SOAPHeader: {
test: [1, 2, 3]
}
})
$.soap({
statusCode: {
404: function() {
console.log('404 Not Found')
},
200: function() {
console.log('200 OK')
}
}
})
$.soap({
success: function(SOAPResponse) {
console.log(SOAPResponse.toString());
}
})
$.soap({
url: 'http://server.com/webServices/',
method: 'getItem'
})
$.soap({
wss: {
username: 'user',
password: 'pass',
nonce: 'w08370jf7340qephufqp3r4',
created: new Date().getTime()
}
})
+83
View File
@@ -0,0 +1,83 @@
// Type definitions for jQuery.SOAP 1.6.7
// Project: https://github.com/doedje/jquery.soap
// Definitions by: Roland Greim <https://github.com/tigerxy>
// Definitions: https://github.com/borisyankov/DefinitelyTyped/
/// <reference path="../jquery/jquery.d.ts"/>
declare module JQuerySOAP {
interface SOAPEnvelope {
attributes: Object
bodies: Array<SOAPObject>
headers: Array<SOAPObject>
prefix: string
soapConfig: any
typeOf: string
addAttribute(name: String, value: string): void
addAttribute(name: String, value: number): void
addBody(soapObject: SOAPObject): void
addHeader(soapObject: SOAPObject): void
addNamespace(name: String, uri: string): void
toString(): string
send(options: Options): void
}
interface SOAPResponse {
toJSON(): any
toString(): String
toXML(): XMLDocument
}
interface SOAPObject {
attributes: Object
children: Array<SOAPObject>
name: string
ns: Object
_parent: SOAPObject
value: any
typeOf: string
addNamespace(name: String, url: string): void
addParameter(name: String, value: string): void
addParameter(name: String, value: number): void
appendChild(soapObject: SOAPObject): SOAPObject
attr(name: string, value: string): Object
attr(name: string, value: number): Object
end(): SOAPObject
find(name: string): SOAPObject
hasChildren(): boolean
newChild(name: string): SOAPObject
parent(): SOAPObject
toString(): string
val(value: string): SOAPObject
val(value: number): SOAPObject
}
interface Options {
appendMethodToURL?: boolean;
async?: boolean;
beforeSend?: (SOAPEnvelope: SOAPEnvelope) => void;
context?: any;
data?: Object;
envAttributes?: any;
elementName?: string;
enableLogging?: boolean;
error?: (SOAPResponse: SOAPResponse) => void;
HTTPHeaders?: Object;
method?: string;
namespaceQualifier?: string;
namespaceURL?: string;
noPrefix?: boolean;
request?: (SOAPEnvelope: SOAPEnvelope) => void;
soap12?: boolean;
SOAPAction?: string;
SOAPHeader?: Object;
statusCode?: Object;
success?: (SOAPResponse: SOAPResponse) => void;
url?: string;
wss?: Object;
}
interface SOAP {
(options?: Options): JQueryXHR;
}
}
interface JQueryStatic {
soap: JQuerySOAP.SOAP;
}
+20
View File
@@ -0,0 +1,20 @@
/// <reference path="md5.d.ts" />
md5('Message to hash');
md5('');
md5('中文');
md5([]);
md5(new Uint8Array([]));
$.md5('message');
$.md5('Message to hash');
$.md5('');
$.md5('中文');
$.md5([]);
$.md5(new Uint8Array([]));
'message'.md5('Message to hash');
'message'.md5('');
'message'.md5('中文');
'message'.md5([]);
'message'.md5(new Uint8Array([]));
+32
View File
@@ -0,0 +1,32 @@
// Type definitions for js-md5 v0.3.0
// Project: https://github.com/emn178/js-md5
// Definitions by: Roland Greim <https://github.com/tigerxy>
// Definitions: https://github.com/borisyankov/DefinitelyTyped/
/// <reference path="../jquery/jquery.d.ts"/>
interface JQuery {
md5(value: string): string;
md5(value: Array<any>): string;
md5(value: Uint8Array): string;
}
interface JQueryStatic {
md5(value: string): string;
md5(value: Array<any>): string;
md5(value: Uint8Array): string;
}
interface md5 {
(value: string): string;
(value: Array<any>): string;
(value: Uint8Array): string;
}
interface String {
md5(value: string): string;
md5(value: Array<any>): string;
md5(value: Uint8Array): string;
}
declare var md5: md5;