UNPKG

fms-api-client

Version:

A FileMaker Data API client designed to allow easier interaction with a FileMaker database from a web environment.

258 lines (238 loc) 11.3 kB
'use strict'; /** @class urls */ const urls = { /** * @function create * @memberof urls * @public * @description The create function generates a url for creating a new record. * @param {String} host The host FileMaker server. * @param {String} database The FileMaker database to target. * @param {String} layout The database layout to use. * @param {String} [version="vLatest"] The Data API version to use. The default is 'vLatest'. * @return {String} A URL to use when creating records. */ create: (host, database, layout, version = 'vLatest') => `${host}/fmi/data/${version}/databases/${database}/layouts/${layout}/records`, /** * @function update * @memberof urls * @public * @description The update function generates a url for updating a record. * @param {String} host The host FileMaker server. * @param {String} database The FileMaker database to target. * @param {String} layout The database layout to use. * @param {String} recordId The FileMaker internal record id to update. * @param {String} [version="vLatest"] The Data API version to use. The default is 'vLatest'. * @return {String} A URL to use when updating records. */ update: (host, database, layout, recordId, version = 'vLatest') => `${host}/fmi/data/${version}/databases/${database}/layouts/${layout}/records/${recordId}`, /** * @function delete * @memberof urls * @public * @description The delete funtion generates a url for deleting a record. * @param {String} host The host FileMaker server. * @param {String} database The FileMaker database to target. * @param {String} layout The database layout to use. * @param {String} recordId The FileMaker internal record id to update. * @param {String} [version="vLatest"] The Data API version to use. The default is 'vLatest'. * @return {String} A URL to use when deleting records. */ delete: (host, database, layout, recordId, version = 'vLatest') => `${host}/fmi/data/${version}/databases/${database}/layouts/${layout}/records/${recordId}`, /** * @function get * @public * @memberOf urls * @description The get function generates a url to get a record's details. * @param {String} host The host FileMaker server. * @param {String} database The FileMaker database to target. * @param {String} layout The database layout to use. * @param {String} recordId The FileMaker internal record id to update. * @param {String} [version="vLatest"] The Data API version to use. The default is 'vLatest'. * @return {String} A URL to used when getting one record. */ get: (host, database, layout, recordId, version = 'vLatest') => `${host}/fmi/data/${version}/databases/${database}/layouts/${layout}/records/${recordId}`, /** * @function list * @public * @memberOf urls * @description The list function generates a url for listing records. * @param {String} host The host FileMaker server. * @param {String} database The FileMaker database to target. * @param {String} layout The database layout to use. * @param {String} [version="vLatest"] The Data API version to use. The default is 'vLatest'. * @return {String} A URL to use when listing records. */ list: (host, database, layout, version = 'vLatest') => `${host}/fmi/data/${version}/databases/${database}/layouts/${layout}/records`, /** * @function find * @public * @memberOf urls * @description The find function generates a url for performing a find request. * @param {String} host The host FileMaker server. * @param {String} database The FileMaker database to target. * @param {String} layout The database layout to use. * @param {String} [version="vLatest"] The Data API version to use. The default is 'vLatest'. * @return {String} A URL to use when performing a find. */ find: (host, database, layout, version = 'vLatest') => `${host}/fmi/data/${version}/databases/${database}/layouts/${layout}/_find`, /** * @function globals * @public * @memberOf urls * @description The global function generates a url for setting globals. Like FileMaker * globals, these values will only be set for the current session. * @param {String} host The host FileMaker server. * @param {String} database The FileMaker database to target. * @param {String} [version="vLatest"] The Data API version to use. The default is 'vLatest'. * @return {String} A URL to use when setting globals */ globals: (host, database, version = 'vLatest') => `${host}/fmi/data/${version}/databases/${database}/globals`, /** * @function logout * @memberOf urls * @public * @description The logout function generates a url for logging out of a FileMaker Session. * @param {String} host The host FileMaker server. * @param {String} database The FileMaker database to target. * @param {String} token The token to logout * @param {String} [version="vLatest"] The Data API version to use. The default is 'vLatest'. * @return {String} A URL to use when logging out of a FileMaker DAPI session. */ logout: (host, database, token, version = 'vLatest') => `${host}/fmi/data/${version}/databases/${database}/sessions/${token}`, /** * @function upload * @memberOf urls * @description The upload function generates a url for use when uploading files to FileMaker containers. * @public * @param {String} host The host FileMaker server. * @param {String} database The FileMaker database to target. * @param {String} layout The database layout to use. * @param {String} recordId the record id to use when inserting the file. * @param {String} fieldName the field to use when inserting a file. * @param {String|Number} [fieldRepetition=1] The field repetition to use when inserting the file. The default is 1. * @param {String} [version="vLatest"] The Data API version to use. The default is 'vLatest'. * @return {String} A URL to use when uploading files to FileMaker. */ upload: ( host, database, layout, recordId, fieldName, fieldRepetition = 1, version = 'vLatest' ) => `${host}/fmi/data/${version}/databases/${database}/layouts/${layout}/records/${recordId}/containers/${fieldName}/${fieldRepetition}`, /** * @function authentication * @memberOf urls * @public * @description The authentication function generates a url for retrieving authentication tokens. * @param {String} host The host FileMaker server. * @param {String} database The FileMaker database to target. * @param {String} [version="vLatest"] The Data API version to use. The default is 'vLatest'. * @return {String} A URL to use when authenticating a FileMaker DAPI session. */ authentication: (host, database, version = 'vLatest') => `${host}/fmi/data/${version}/databases/${database}/sessions`, /** * @function layouts * @memberOf urls * @public * @description The layouts function generates a url for retrieving database layouts. * @param {String} host The host FileMaker server. * @param {String} database The FileMaker database to target. * @param {String} [version="vLatest"] The Data API version to use. The default is 'vLatest'. * @return {String} A URL for retrieving database layouts. */ layouts: (host, database, version = 'vLatest') => `${host}/fmi/data/${version}/databases/${database}/layouts`, /** * @function layout * @memberOf urls * @public * @description The layout function generates a url for getting specific layout metadata. * in exchange for Account credentials. * @param {String} host The host FileMaker server. * @param {String} database The FileMaker database to target. * @param {String} layout The database layout to use. * @param {String} [version="vLatest"] The Data API version to use. The default is 'vLatest'. * @return {String} A URL for retrieving specific layout metadata. */ layout: (host, database, layout, version = 'vLatest') => `${host}/fmi/data/${version}/databases/${database}/layouts/${layout}`, /** * @function scripts * @memberOf urls * @public * @description The scripts function generates a url for listing database scripts. * @param {String} host The host FileMaker server. * @param {String} database The FileMaker database to target. * @param {String} [version="vLatest"] The Data API version to use. The default is 'vLatest'. * @return {String} A URL for listing datbase scripts */ scripts: (host, database, version = 'vLatest') => `${host}/fmi/data/${version}/databases/${database}/scripts`, /** * @function duplicate * @memberOf urls * @public * @description The duplicate function generates a url for duplicating FileMaker records. * in exchange for Account credentials. * @param {String} host The host FileMaker server. * @param {String} database The FileMaker database to target. * @param {String} layout The database layout to use. * @param {String} recordId The FileMaker internal record id to duplicate. * @param {String} [version="vLatest"] The Data API version to use. The default is 'vLatest'. * @return {String} A URL to duplicate FileMaker records. */ duplicate: (host, database, layout, recordId, version = 'vLatest') => `${host}/fmi/data/${version}/databases/${database}/layouts/${layout}/records/${recordId}`, /** * @function productInfo * @memberOf urls * @public * @description The productInfo function generates a url for retrieving FileMaker Server metadata. * @param {String} host The host FileMaker server. * @param {String} [version="vLatest"] The Data API version to use. The default is 'vLatest'. * @return {String} The URL to use to retrieve FileMaker Server metadata. */ productInfo: (host, version = 'vLatest') => `${host}/fmi/data/${version}/productInfo`, /** * @function databases * @memberOf urls * @public * @description The databases function generates a url for retrieving FileMaker Server hosted databases. * @param {String} host The host FileMaker server. * @param {String} [version="vLatest"] The Data API version to use. The default is 'vLatest'. * @return {String} The URL to use to retrieve FileMaker Server hosted databases. */ databases: (host, version = 'vLatest') => `${host}/fmi/data/${version}/databases`, /** * @function script * @memberOf urls * @public * @description The script function generates a url for running a FileMaker script. * @param {String} host The host FileMaker server. * @param {String} database The FileMaker database to target. * @param {String} layout The database layout to use. * @param {String} script The name of the script to run . * @param {String|Object|Number} [parameter] Optional script parameters to pass to the called script. * @param {String} [version="vLatest"] The Data API version to use. The default is 'vLatest'. * @return {String} The URL to call a specific FileMaker script */ script: (host, database, layout, script, parameter, version = 'vLatest') => `${host}/fmi/data/${version}/databases/${database}/layouts/${layout}/script/${script}` }; module.exports = { urls };