UNPKG

contensis-management-api

Version:

Client for managing content using the Contensis Management API

114 lines (98 loc) 3.27 kB
import { Config, User, Group } from './models'; const defaultRootUrl = 'http://my-website.com/'; export const defaultUsers = [{ id: 'IIIIII1', username: 'UUUUUU1', email: 'EEEEEE1@test.com', optOutOfNotifications: true }, { id: 'IIIIII2', username: 'UUUUUU2', email: 'EEEEEE2@test.com' }] as Partial<User>[]; export const defaultGroups = [{ id: 'IIIIII1', name: 'NNNNNN1' }, { id: 'IIIIII2', name: 'NNNNNN2' }] as Partial<Group>[]; export function getDefaultAuthenticateUrl(isRelative: boolean = false): string { let authenticatePath = 'authenticate/connect/token'; if (isRelative) { return '/' + authenticatePath; } return defaultRootUrl + authenticatePath; } export function getDefaultConfig(): Config { return { projectId: 'myProject', rootUrl: defaultRootUrl, language: 'en-US', versionStatus: 'published', clientType: 'client_credentials', clientDetails: { clientId: 'XXXXXX', clientSecret: 'YYYYYY' } }; } export function getDefaultFetchRequest(method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'HEAD' | 'DELETE', isRelativeUrl?: boolean, body?: string): object { let request = Object({ method: !method ? 'GET' : method, mode: 'cors', headers: { Authorization: 'Bearer ZZZZZZ', Accept: 'application/json', 'Content-Type': method === 'PATCH' ? 'application/merge-patch+json; charset=utf-8' : 'application/json' } }); if (!!isRelativeUrl) { delete request.mode; } if (!!body) { request.body = body; } return request; } export function getDefaultXMLHttpRequest(method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'HEAD' | 'DELETE', body?: string): object { let request = Object({ method: !method ? 'GET' : method, requestHeaders: { Authorization: 'Bearer ZZZZZZ', Accept: 'application/json', 'Content-Type': method === 'PATCH' ? 'application/merge-patch+json; charset=utf-8' : 'application/json' } }); if (!!body) { request.params = body; } return request; } export function setDefaultSpy(global: any, returnValueForApi: any, rejectRequest?: boolean): void { spyOn(global, 'fetch').and.returnValues( new Promise((resolve, reject) => { const returnValueForAuthenticate = { access_token: 'ZZZZZZ' }; resolve({ ok: true, json: () => Promise.resolve(returnValueForAuthenticate), text: () => Promise.resolve(JSON.stringify(returnValueForAuthenticate)) } as any); }), new Promise((resolve, reject) => { if (rejectRequest === true) { reject(); } else { resolve({ ok: true, json: () => Promise.resolve(returnValueForApi), text: () => Promise.resolve(JSON.stringify(returnValueForApi)) } as any); } }) ); }