terriajs
Version:
Geospatial data visualization platform.
70 lines (62 loc) • 2.27 kB
text/typescript
import anyTrait from "../Decorators/anyTrait";
import objectArrayTrait from "../Decorators/objectArrayTrait";
import primitiveTrait from "../Decorators/primitiveTrait";
import mixTraits from "../mixTraits";
import ModelTraits from "../ModelTraits";
import UrlTraits from "./UrlTraits";
export class QueryParamTraits extends ModelTraits {
({
name: "Parameter name",
type: "string",
description: "The name of the query parameter."
})
name?: string;
({
name: "Parameter value",
type: "string",
description:
"The value of the query parameter. Parameter values starting with" +
" `DATE!`, eg. `DATE!HH:MM`, will be replaced wih the current date and" +
" time, formatted according to the format string following the `!`." +
" For more information on the format string format, see the " +
" [dateformat](https://github.com/felixge/node-dateformat) library."
})
value?: string;
}
/** Not all traits here will be supported by all catalog items that use them */
export default class ApiRequestTraits extends mixTraits(UrlTraits) {
({
name: "Query parameters",
type: QueryParamTraits,
description: "Query parameters to supply to the API",
idProperty: "name"
})
queryParameters: QueryParamTraits[] = [];
({
name: "Query parameters for updates",
type: QueryParamTraits,
description:
"Query parameters to supply to the API on subsequent calls after the first call.",
idProperty: "name"
})
updateQueryParameters: QueryParamTraits[] = [];
({
name: "Request body",
description:
"JSON body to be sent with the HTTP request to the server. If provided, the request will be made as POST rather than a GET."
})
requestData?: any;
({
name: "POST as form data",
type: "boolean",
description: "Send the request data as form data instead of a JSON body."
})
postRequestDataAsFormData?: boolean = false;
({
name: "Response data path",
type: "string",
description:
"Path to relevent data in JSON response. eg: `some.user.name`, `some.users[0].name` or `some.users[].name`"
})
responseDataPath?: string;
}