DefinitelyTyped/types/dojo/dojox.rpc.d.ts
2017-03-24 14:27:52 -07:00

298 lines
9.7 KiB
TypeScript

// Type definitions for Dojo v1.9
// Project: http://dojotoolkit.org
// Definitions by: Michael Van Sickle <https://github.com/vansimke>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
declare namespace dojox {
namespace rpc {
/**
* Permalink: http://dojotoolkit.org/api/1.9/dojox/rpc/Rest.html
*
* This provides a HTTP REST service with full range REST verbs include PUT,POST, and DELETE.
* A normal GET query is done by using the service directly:
*
* var restService = dojox.rpc.Rest("Project");
* restService("4");
* This will do a GET for the URL "/Project/4".
*
* restService.put("4","new content");
* This will do a PUT to the URL "/Project/4" with the content of "new content".
*
* You can also use the SMD service to generate a REST service:
*
* var services = dojox.rpc.Service({services: {myRestService: {transport: "REST",...
* services.myRestService("parameters");
* The modifying methods can be called as sub-methods of the rest service method like:
*
* services.myRestService.put("parameters","data to put in resource");
* services.myRestService.post("parameters","data to post to the resource");
* services.myRestService['delete']("parameters");
*
* @param path
* @param isJson Optional
* @param schema Optional
* @param getRequest Optional
*/
interface Rest{(path: String, isJson?: boolean, schema?: Object, getRequest?: Function): void}
namespace Rest {
/**
* Permalink: http://dojotoolkit.org/api/1.9/dojox/rpc/Rest._index.html
*
*
*/
interface _index {
}
/**
* Permalink: http://dojotoolkit.org/api/1.9/dojox/rpc/Rest._timeStamps.html
*
*
*/
interface _timeStamps {
}
}
namespace Client {
}
namespace JsonRPC {
}
namespace ProxiedPath {
}
namespace Service {
}
/**
* Permalink: http://dojotoolkit.org/api/1.9/dojox/rpc/OfflineRest.html
*
* Makes the REST service be able to store changes in local
* storage so it can be used offline automatically.
*
*/
interface OfflineRest {
/**
*
*/
stores: any[];
/**
* Adds a store to the monitored store for local storage
*
* @param store Store to add
* @param baseQuery OptionalThis is the base query to should be used to load the items forthe store. Generally you want to load all the items that should beavailable when offline.
*/
addStore(store: dojo.data.api.Read, baseQuery: String): void;
/**
*
*/
downloadChanges(): void;
/**
*
*/
sendChanges(): void;
/**
*
*/
sync(): void;
/**
*
*/
turnOffAutoSync(): void;
}
/**
* Permalink: http://dojotoolkit.org/api/1.9/dojox/rpc/JsonRest.html
*
*
*/
interface JsonRest {
/**
*
*/
conflictDateHeader: string;
/**
*
*/
schemas: Object;
/**
*
*/
services: Object;
/**
*
* @param service
* @param id
*/
byId(service: any, id: any): any;
/**
* adds an object to the list of dirty objects. This object
* contains a reference to the object itself as well as a
* cloned and trimmed version of old object for use with
* revert.
*
* @param object
* @param _deleting
*/
changing(object: any, _deleting: any): void;
/**
* Saves the dirty data using REST Ajax methods
*
* @param kwArgs
*/
commit(kwArgs: any): any[];
/**
* deletes an object
*
* @param object object to delete
*/
deleteObject(object: any): void;
/**
* Fetches a resource by an absolute path/id and returns a dojo.Deferred.
*
* @param absoluteId
*/
fetch(absoluteId: any): any;
/**
* Creates or gets a constructor for objects from this service
*
* @param service
* @param schema
*/
getConstructor(service: Function, schema: any): any;
/**
* Creates or gets a constructor for objects from this service
*
* @param service
* @param schema
*/
getConstructor(service: String, schema: any): any;
/**
*
*/
getDirtyObjects(): any[];
/**
* Return the ids attribute used by this service (based on it's schema).
* Defaults to "id", if not other id is defined
*
* @param service
*/
getIdAttribute(service: any): String;
/**
* Returns the REST service and the local id for the given absolute id. The result
* is returned as an object with a service property and an id property
*
* @param absoluteId This is the absolute id of the object
*/
getServiceAndId(absoluteId: String): Object;
/**
* returns true if the item is marked as dirty or true if there are any dirty items
*
* @param item
* @param store
*/
isDirty(item: any, store: any): any;
/**
*
* @param service
* @param id
* @param args
*/
query(service: any, id: any, args: any): any;
/**
* Registers a service for as a JsonRest service, mapping it to a path and schema
*
* @param service This is the service to register
* @param servicePath This is the path that is used for all the ids for the objects returned by service
* @param schema OptionalThis is a JSON Schema object to associate with objects returned by this service
*/
registerService(service: Function, servicePath: String, schema: Object): void;
/**
* Reverts all the changes made to JSON/REST data
*
* @param service
*/
revert(service: any): void;
/**
*
* @param actions
* @param kwArgs
*/
sendToServer(actions: any, kwArgs: any): void;
/**
* This provides a HTTP REST service with full range REST verbs include PUT,POST, and DELETE.
* A normal GET query is done by using the service directly:
*
* var restService = dojox.rpc.Rest("Project");
* restService("4");
* This will do a GET for the URL "/Project/4".
*
* restService.put("4","new content");
* This will do a PUT to the URL "/Project/4" with the content of "new content".
*
* You can also use the SMD service to generate a REST service:
*
* var services = dojox.rpc.Service({services: {myRestService: {transport: "REST",...
* services.myRestService("parameters");
* The modifying methods can be called as sub-methods of the rest service method like:
*
* services.myRestService.put("parameters","data to put in resource");
* services.myRestService.post("parameters","data to post to the resource");
* services.myRestService['delete']("parameters");
*
* @param path
* @param isJson Optional
* @param schema Optional
* @param getRequest Optional
*/
serviceClass(path: String, isJson: boolean, schema: Object, getRequest: Function): Function;
}
namespace JsonRest {
/**
* Permalink: http://dojotoolkit.org/api/1.9/dojox/rpc/JsonRest.services.html
*
*
*/
interface services {
}
/**
* Permalink: http://dojotoolkit.org/api/1.9/dojox/rpc/JsonRest.schemas.html
*
*
*/
interface schemas {
}
}
}
}
declare module "dojox/rpc/Rest" {
var exp: dojox.rpc.Rest
export=exp;
}
declare module "dojox/rpc/Rest._index" {
var exp: dojox.rpc.Rest._index
export=exp;
}
declare module "dojox/rpc/Rest._timeStamps" {
var exp: dojox.rpc.Rest._timeStamps
export=exp;
}
declare module "dojox/rpc/OfflineRest" {
var exp: dojox.rpc.OfflineRest
export=exp;
}
declare module "dojox/rpc/JsonRest" {
var exp: dojox.rpc.JsonRest
export=exp;
}
declare module "dojox/rpc/JsonRest.services" {
var exp: dojox.rpc.JsonRest.services
export=exp;
}
declare module "dojox/rpc/JsonRest.schemas" {
var exp: dojox.rpc.JsonRest.schemas
export=exp;
}