Skip to content
This repository has been archived by the owner on Jan 21, 2022. It is now read-only.

nils-jansen/scrivito-js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 

Repository files navigation

scrivito-js

API Wrapper for interacting with the Scrivito CMS API. This repository is not associated with Scrivito or Infopark.

Installation

Using npm:

$ npm install scrivito-js

Usage

const scrivito = require("scrivito-js");

let workspace = await scrivito.createWorkspace("Fancy name", TENANT_ID, API_KEY);

let images = await scrivito.getObjectsByQuery(
  [
    {
      field: "_obj_class",
      operator: "equals",
      value: "Image",
    },
  ],
  workspace,
  TENANT_ID,
  API_KEY
);

API

createWorkspace(title: string, tenant: string, apiKey: string): Promise

Creates a new workspace using the title argument and returns a promise that resolves to its new ID.

let workspace = await scrivito.createWorkspace("Fancy name", TENANT_ID, API_KEY);

getObject(id: string, workspace: string, tenant: string, apiKey: string): Promise

Returns a promise that resolves to the object with given ID. Also works with a blank workspace argument, will then use published content.

let obj = await scrivito.getObject(
  "someLongId",
  WORKSPACE_ID,
  TENANT_ID,
  API_KEY
);

deleteObject(id: string, workspace: string, tenant: string, apiKey: string): Promise

Returns a promise which resolves if the Object is deleted successfully.

try {
  let deleted = await scrivito.deleteObject(
    "id",
    WORKSPACE_ID,
    TENANT_ID,
    API_KEY
  );
  if (deleted) {
    // do something else
  }
} catch (error) {
  console.error(error);
}

updateObject(obj: any, workspace: string, tenant: string, apiKey: string): Promise

Returns a promise which resolves if the Object is updated successfully. The id is extracted from the Object parameter, if an Object already exists with the same ID, it will be overridden.

try {
  let updated = await scrivito.updateObject(
    newObject,
    WORKSPACE_ID,
    TENANT_ID,
    API_KEY
  );
} catch (error) {
  console.error(error);
}

publishWorkspace(id: string, tenant: string, apiKey: string): Promise

Publishes the workspace with given ID. This will work even with publish-preventing warnings and errors.

try {
  await scrivito.publishWorkspace(WORKSPACE_ID, TENANT_ID, API_KEY);
} catch (error) {
  console.error(error);
}

getIdsByQuery(query: any[], workspace: string, tenant: string, apiKey: string): Promise

Resolves to an array of objects, containing the IDs of all objects found by given query.

try {
  let images = await scrivito.getIdsByQuery(
    [
      {
        field: "_obj_class",
        operator: "equals",
        value: "Image",
      },
    ],
    WORKSPACE_ID,
    TENANT_ID,
    API_KEY
  );

  for (let i = 0; i < images.length; i++) {
    const image = images[i].id;
    // do something with each ID
  }
} catch (error) {
  console.error(error);
}

getObjectsByQuery(query: any[], workspace: string, tenant: string, apiKey: string): Promise

Works like getIdsByQuery, but returns objects instead of IDs inside array.

try {
  let pagesToEdit = await scrivito.getObjectsByQuery(
    [
      {
        field: "*",
        operator: "contains",
        value: "some_word",
      },
    ],
    WORKSPACE_ID,
    TENANT_ID,
    API_KEY
  );

  for (let i = 0; i < pagesToEdit.length; i++) {
    const pageObject = pagesToEdit[i];
    // do something with each object, maybe call update updateObject(...) after modifying it
  }
} catch (error) {
  console.error(error);
}

About

API wrapper for Scrivito CMS

Topics

Resources

Stars

Watchers

Forks