@ubw/mediatum-rest-client

0.4.1 • Public • Published

mediatum-rest-client

Convenience wrapper around the RESTful mediaTUM API

Install

$ npm install @ubw/mediatum-rest-client

Usage

const ubwMediatumRestClient = require('@ubw/mediatum-rest-client');

ubwMediatumRestClient.getAllChildren(1433089, {limit: 1}).then(console.log);
// =>
/*
{
	data: [
		{
			type: '1433089',
			id: 1335274,
			attributes: {
				'author.firstname': 'Thomas',
				type: 'Dissertation',
				// ...
			},
			links: {
				self: {
					href: 'https://mediatum.ub.tum.de/?id=...'
				}
			}
		}
	],
	meta: {
		username: 'guest',
		status: 'ok',
		method: 'GET',
		nodelist_limit: '1',
		nodelist_start: 0,
		// ...
	}
}
 */

API

.getAllChildren(id, [options])

Returns a Promise.

id

Type: Number

The id of the mediaTUM node to query.

options

Type: Object

See mediaTUM query parameters for additional options.

format

Type: String
Default: 'json'

acceptcached

Type: Number
Default: 180

mask

Type: String
Default: 'none'

attrspec

Type: String
Default: 'all'

baseUrl

Type: String
Default: 'https://mediatum.ub.tum.de'

queryUrl

Type: Function
Default: (baseUrl, id, endpoint) => `${baseUrl}/services/export/node/${id}/${endpoint}`

selfHref

Type: Function
Default: (node, baseUrl) => `${baseUrl}/?id=${node.id}`

schema

Type: Object
Default: undefined

Expected attributes schema.

const schema = {
	author: String,      // convert attribute to string
	title: undefined,    // include attribute, but do not mind the type
	isAwesome: Boolean,  // convert attribute to boolean
	year: 'year',        // convert attribute to integer
	pages: 'int',        // convert attribute to integer
	created: Date,       // convert attribute to date
};

getAllChildren(42, {schema})
// => nodes in nodelist will only have attributes mentioned above
/*
{
	data: [
		{
			type: '21',
			id: 42,
			attributes: {
				author: 'Douglas Adams',
				title: 'The Hitchhiker’s Guide to the Galaxy',
				isAwesome: true,
				year: 1979,
				pages: 158,
				created: Date(...)
			},
			links: {
				self: {
					href: 'https://mediatum.ub.tum.de/?id=42'
				}
			}
		}
	],
	meta: {
		// ...
	}
}
 */

Related

License

MIT © Michael Mayer

Package Sidebar

Install

npm i @ubw/mediatum-rest-client

Weekly Downloads

1

Version

0.4.1

License

MIT

Unpacked Size

116 kB

Total Files

9

Last publish

Collaborators

  • schnittstabil