express-mesh
Version:
A Gentics Mesh frontend for Express.
102 lines (101 loc) • 4.03 kB
TypeScript
import http = require('http');
import Q = require('q');
import { LoggingConfig } from "./config";
import { IMeshRequest } from "./mesh";
import { IMeshNodeListQueryParams } from "./mesh";
import { IMeshNav } from "./mesh";
import { IMeshNode } from "./mesh";
import { IMeshNodeListResponse } from "./mesh";
import { IMeshSearchQuery } from "./mesh";
import { IMeshTagFamily } from "./mesh";
import { IMeshTag } from "./mesh";
import { MeshQueryParams } from "./mesh";
/**
* Mesh Rest response object
*/
export declare class MeshRestResponse<T> {
status: number;
data: T;
isBinary: boolean;
stream: http.IncomingMessage;
constructor(status: number, data: T, isBinary: boolean);
}
/**
* Possible authentication methods.
*/
export declare enum MeshAuthType {
BASIC = 0,
}
/**
* Mesh authentication obejct.
*/
export declare class MeshAuth {
static MESH_USER_SESSION_KEY: string;
static MESH_PASSWORD_SESSION_KEY: string;
type: MeshAuthType;
header: string;
/**
* Initialize the Mesh authentication object.
* It generates the needed authentication header for making Mesh requests.
* @param request The MeshRequest
*/
constructor(request: IMeshRequest);
/**
* Generate basic auth header from username and password.
* @param username Username
* @param password Password
* @returns {string} Header string.
*/
private getBasicAuthHeader(username, password);
}
/**
* Options for making Mesh Requests.
*/
export declare class MeshRequestOptions {
url: string;
method: string;
data: any;
params: IMeshNodeListQueryParams;
auth: MeshAuth;
logging: LoggingConfig;
/**
* Initialize request options and prefill it with the authentication object.
* @param request MeshRequest
*/
constructor(request: IMeshRequest);
}
/**
* MeshRestClient that can be used to make requests to the mesh backend.
*/
export declare class MeshRestClient {
private static NODES_ENDPOINT;
private static NAVIGATION_ENDPOINT;
private static CHILDREN_ENDPOINT;
private static TAG_FAMILIES_ENDPOINT;
private publicMeshCookieUserStore;
/**
*
* @param req
* @param path
* @param maxDepth
* @returns {Q.Promise<MeshRestResponse<IMeshNav>>}
*/
getNavigationByPath(req: IMeshRequest, path: string, params?: MeshQueryParams): Q.Promise<MeshRestResponse<IMeshNav>>;
getNavigationByUUID(req: IMeshRequest, uuid: string, params?: MeshQueryParams): Q.Promise<MeshRestResponse<IMeshNav>>;
getWebrootNode<T>(req: IMeshRequest, params?: MeshQueryParams): Q.Promise<MeshRestResponse<IMeshNode<T>>>;
getMeshNode<T>(req: IMeshRequest, uuid: string, params?: MeshQueryParams): Q.Promise<MeshRestResponse<IMeshNode<T>>>;
getChildren<T>(req: IMeshRequest, uuid: string, params?: MeshQueryParams): Q.Promise<MeshRestResponse<IMeshNodeListResponse<IMeshNode<T>>>>;
meshSearch<T>(req: IMeshRequest, query: IMeshSearchQuery, params?: IMeshNodeListQueryParams): Q.Promise<MeshRestResponse<IMeshNodeListResponse<T>>>;
getTagFamilies(req: IMeshRequest, params?: MeshQueryParams): Q.Promise<MeshRestResponse<IMeshNodeListResponse<IMeshTagFamily>>>;
getTagsOfTagFamily(req: IMeshRequest, uuid: string, params?: MeshQueryParams): Q.Promise<MeshRestResponse<IMeshNodeListResponse<IMeshTag>>>;
login(req: IMeshRequest, username: string, password: string): Q.Promise<boolean>;
logout(req: IMeshRequest): Q.Promise<boolean>;
meshSimpleGET<T>(req: IMeshRequest, url: string, params?: MeshQueryParams): Q.Promise<MeshRestResponse<T>>;
meshSimpleRequest<T>(method: string, req: IMeshRequest, url: string, params?: MeshQueryParams, data?: any): Q.Promise<MeshRestResponse<T>>;
meshPOST(requestOptions: MeshRequestOptions, data?: any): Q.Promise<MeshRestResponse<any>>;
/**
* Convert a queryParams object into a URL-encoded string.
*/
private queryStringFromParams(queryParams);
private makeMeshRequest(requestOptions);
}