📅 You're Invited: Meet the Socket team at RSAC (April 28 – May 1).RSVP

@plattar/plattar-api

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@plattar/plattar-api - npm Package Compare versions

Comparing version

to
1.90.9-dev

{
"name": "@plattar/plattar-api",
"version": "1.90.8-dev",
"version": "1.90.9-dev",
"description": "Module for interfacing with the Plattar API (https://www.plattar.com)",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -112,3 +112,3 @@ const got = require('got');

if (!error || !error.response || !error.response.body) {
reject(new Error('PlattarQuery.' + target.type() + '.get(' + target.id + ') - critical error occured, cannot proceed'));
reject(new Error('PlattarQuery.' + target.type() + '.get(' + target.id + ') - critical error occured, cannot proceed. error was ' + error));
return;

@@ -115,0 +115,0 @@ }

'use strict';
const PlattarQuery = require('../../server/plattar-query.js');
const PlattarObjectRelations = require('./plattar-object-relations.js');

@@ -14,2 +15,3 @@ class PlattarObject {

this._query = new PlattarQuery(this, server);
this._relationships = new PlattarObjectRelations(this);
}

@@ -45,2 +47,6 @@

get relationships() {
return this._relationships;
}
get(opt) {

@@ -47,0 +53,0 @@ return this._query._get(opt);

@@ -86,3 +86,39 @@ 'use strict';

// todo
const server = parent._query.server;
// fill the relationships for the object
if (json.data.relationships) {
for (const [key, value] of Object.entries(json.data.relationships)) {
const data = value.data;
if (Array.isArray(data)) {
data.forEach((item) => {
const construct = PlattarUtil.create(key, item.id, server);
construct._attributes = item.attributes || {};
parent.relationships._put(construct);
});
}
else {
const construct = PlattarUtil.create(key, data.id, server);
construct._attributes = data.attributes || {};
parent.relationships._put(construct);
}
}
}
// loop through the includes and populate as required
if (json.included) {
json.included.forEach((item) => {
const existing = parent.relationships.find(PlattarUtil.match(item.type), item.id);
if (existing) {
PlattarUtil.reconstruct(existing, {
data: item,
included: json.included
}, options);
}
});
}
}

@@ -99,39 +135,51 @@

static create(type, id, server) {
// dynamic class matching from a string type
const clazz = PlattarUtil.match(type);
return new clazz(id, server);
}
/**
* Dynamic class matching provided an object type as a string
*
* @param {*} type The type of class to construct
*/
static match(type) {
switch (type) {
case Application.type(): return new Application(id, server);
case Scene.type(): return new Scene(id, server);
case SceneAnnotation.type(): return new SceneAnnotation(id, server);
case SceneAudio.type(): return new SceneAudio(id, server);
case SceneButton.type(): return new SceneButton(id, server);
case SceneCamera.type(): return new SceneCamera(id, server);
case SceneCarousel.type(): return new SceneCarousel(id, server);
case SceneImage.type(): return new SceneImage(id, server);
case SceneModel.type(): return new SceneModel(id, server);
case ScenePanorama.type(): return new ScenePanorama(id, server);
case ScenePoller.type(): return new ScenePoller(id, server);
case SceneProduct.type(): return new SceneProduct(id, server);
case SceneShadow.type(): return new SceneShadow(id, server);
case SceneVideo.type(): return new SceneVideo(id, server);
case SceneVolumetric.type(): return new SceneVolumetric(id, server);
case SceneYoutube.type(): return new SceneYoutube(id, server);
case Page.type(): return new Page(id, server);
case CardButton.type(): return new CardButton(id, server);
case CardHTML.type(): return new CardHTML(id, server);
case CardIFrame.type(): return new CardIFrame(id, server);
case Product.type(): return new Product(id, server);
case ProductVariation.type(): return new ProductVariation(id, server);
case ProductAnnotation.type(): return new ProductAnnotation(id, server);
case FileAudio.type(): return new FileAudio(id, server);
case FileVideo.type(): return new FileVideo(id, server);
case FileModel.type(): return new FileModel(id, server);
case FileImage.type(): return new FileImage(id, server);
case CardMap.type(): return new CardMap(id, server);
case CardParagraph.type(): return new CardParagraph(id, server);
case CardRow.type(): return new CardRow(id, server);
case CardSlider.type(): return new CardSlider(id, server);
case CardTitle.type(): return new CardTitle(id, server);
case CardVideo.type(): return new CardVideo(id, server);
case CardYoutube.type(): return new CardYoutube(id, server);
case CardImage.type(): return new CardImage(id, server);
default: throw new Error('PlattarUtil.create(type, id, server) - provided type of \'' + type + '\' does not exist');
case Application.type(): return Application;
case Scene.type(): return Scene;
case SceneAnnotation.type(): return SceneAnnotation;
case SceneAudio.type(): return SceneAudio;
case SceneButton.type(): return SceneButton;
case SceneCamera.type(): return SceneCamera;
case SceneCarousel.type(): return SceneCarousel;
case SceneImage.type(): return SceneImage;
case SceneModel.type(): return SceneModel;
case ScenePanorama.type(): return ScenePanorama;
case ScenePoller.type(): return ScenePoller;
case SceneProduct.type(): return SceneProduct;
case SceneShadow.type(): return SceneShadow;
case SceneVideo.type(): return SceneVideo;
case SceneVolumetric.type(): return SceneVolumetric;
case SceneYoutube.type(): return SceneYoutube;
case Page.type(): return Page;
case CardButton.type(): return CardButton;
case CardHTML.type(): return CardHTML;
case CardIFrame.type(): return CardIFrame;
case Product.type(): return Product;
case ProductVariation.type(): return ProductVariation;
case ProductAnnotation.type(): return ProductAnnotation;
case FileAudio.type(): return FileAudio;
case FileVideo.type(): return FileVideo;
case FileModel.type(): return FileModel;
case FileImage.type(): return FileImage;
case CardMap.type(): return CardMap;
case CardParagraph.type(): return CardParagraph;
case CardRow.type(): return CardRow;
case CardSlider.type(): return CardSlider;
case CardTitle.type(): return CardTitle;
case CardVideo.type(): return CardVideo;
case CardYoutube.type(): return CardYoutube;
case CardImage.type(): return CardImage;
default: throw new Error('PlattarUtil.match(type) - provided type of \'' + type + '\' does not exist and cannot be created');
}

@@ -138,0 +186,0 @@ }