UNPKG

@point-api/js-sdk

Version:

Javascript SDK for Point API

106 lines 3.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const suggestionsStore_1 = require("./suggestionsStore"); class LocalApiServer { constructor() { this.store = new suggestionsStore_1.default(); } httpRequest(method, url, data, headers) { if (url.startsWith('/snippets')) { if ('GET' === method) { return this.mockResponse(this.extensionCustomGet()); } else if ('POST' === method) { return this.mockResponse(this.extensionCustomPost(data)); } } else if (url.startsWith('/account')) { if ('GET' === method) { return this.mockResponse(this.accountGet()); } } else if (url.startsWith('/interactions')) { return this.mockResponse({ success: true }); } return this.mockResponse({ success: false }); } extensionCustomGet() { const snippets = this.store.snippets.slice(); return { success: true, snippets }; } extensionCustomPost(snippet) { if (this.store.snippetNameExists(snippet.name)) { return { success: false, status: "Snippet name must be unique" }; } this.store.addSnippet(snippet.name, snippet.content, snippet.labels); return { success: true, status: "success" }; } accountGet() { return { "success": true, "emailAddress": "demo@pointapi.com", "name": "Demo Account", "preferences": { "searchType": "standard", "snippetMenuEverywhere": false, "tabCompletion": true, "websites": [] }, "subscription": { "dailyLimit": 0, "dailyUsage": 0, "expirationDate": 4102488000.000, "membershipType": "premium", "willRenew": true } }; } getSnippetsByContent(seedText, currentContext) { const seedTextLower = seedText.toLowerCase(); const snippets = this.store.snippets .filter((meta) => meta.content.toLowerCase().startsWith(seedTextLower)) .slice(0, 3); return { snippets, seedText, responseId: this.randomResponseId(), }; } getSnippetsByName(seedText) { const snippets = this.store.snippets. filter((meta) => meta.name.toLowerCase().startsWith(seedText.toLowerCase())). slice(0, 3); return { snippets, seedText, responseId: this.randomResponseId(), }; } addSnippet(name, content, labels, addToBottom) { this.store.addSnippet(name, content, labels, addToBottom); } mockResponse(body) { const init = { status: !body.success ? 400 : 200, statusText: !body.success ? "BAD REQUEST" : "OK", headers: { "content-type": "application/json" } }; return new Response(JSON.stringify(body), init); } randomResponseId() { return String(Date.now()); } } exports.default = LocalApiServer; //# sourceMappingURL=localApiServer.js.map