0.4.1 • Published 6 years ago

@ubw/mediatum-rest-client v0.4.1

Weekly downloads
-
License
MIT
Repository
gitlab
Last release
6 years ago

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

0.4.1

6 years ago

0.4.0

6 years ago

0.3.1

6 years ago

0.3.0

6 years ago

0.2.0

6 years ago

0.1.1

6 years ago

0.1.0

6 years ago