From dd23d930dd8d0e51310f4e4a36bf9aeed7126d8d Mon Sep 17 00:00:00 2001 From: hibas123 Date: Mon, 5 Feb 2018 10:32:48 +0100 Subject: [PATCH] Adding folder support --- index.d.ts | 4 ++-- index.js | 10 ++++++---- index.ts | 9 +++++---- test.d.ts | 1 + test.js | 38 +++++++++++++++++++++++++++++++++++--- test.ts | 38 +++++++++++++++++++++++++++++++++++--- 6 files changed, 84 insertions(+), 16 deletions(-) diff --git a/index.d.ts b/index.d.ts index d158cdb..8d7accf 100644 --- a/index.d.ts +++ b/index.d.ts @@ -18,8 +18,8 @@ export default class SecureFile { constructor(server: string, username: string, private_key: string); private getCode(); private makeRequest(endpoint, method, query, body); - list(): Promise; - create(name: string, data: Buffer, type: "text" | "binary", preview?: Buffer): Promise; + list(folder?: string): Promise; + create(name: string, data: Buffer, type: "text" | "binary", folder?: string, preview?: Buffer): Promise; get(id: string, version?: string): Promise; update(id: string, data: Buffer, preview?: Buffer): Promise; delete(id: string): Promise; diff --git a/index.js b/index.js index 1dc012a..5913bf6 100644 --- a/index.js +++ b/index.js @@ -29,13 +29,15 @@ class SecureFile { } return await node_fetch_1.default(this.Server + endpoint + query_str, { method: method, body: body }); } - async list() { - let res = await this.makeRequest("/files", "GET", {}, undefined); + async list(folder) { + if (!folder) + folder = "root"; + let res = await this.makeRequest("/files", "GET", { folder: folder }, undefined); statusParser(res); return await res.json(); } - async create(name, data, type, preview) { - let res = await this.makeRequest("/files", "POST", { type: type, name: name, preview: preview }, data); + async create(name, data, type, folder, preview) { + let res = await this.makeRequest("/files", "POST", { type: type, name: name, preview: preview, folder: folder }, data); statusParser(res); return res.json(); } diff --git a/index.ts b/index.ts index 9ad2fab..94d35a6 100644 --- a/index.ts +++ b/index.ts @@ -47,14 +47,15 @@ export default class SecureFile { return await fetch(this.Server + endpoint + query_str, { method: method, body: body }); } - async list(): Promise { - let res = await this.makeRequest("/files", "GET", {}, undefined) + async list(folder?: string): Promise { + if (!folder) folder = "root"; + let res = await this.makeRequest("/files", "GET", { folder: folder }, undefined) statusParser(res); return await res.json(); } - async create(name: string, data: Buffer, type: "text" | "binary", preview?: Buffer): Promise { - let res = await this.makeRequest("/files", "POST", { type: type, name: name, preview: preview }, data) + async create(name: string, data: Buffer, type: "text" | "binary", folder?: string, preview?: Buffer): Promise { + let res = await this.makeRequest("/files", "POST", { type: type, name: name, preview: preview, folder: folder }, data) statusParser(res); return res.json(); } diff --git a/test.d.ts b/test.d.ts index e69de29..cb0ff5c 100644 --- a/test.d.ts +++ b/test.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/test.js b/test.js index 0dae075..1329793 100644 --- a/test.js +++ b/test.js @@ -11,15 +11,17 @@ const testprev = new buffer_1.Buffer("Ich bin..."); let testid; let testver; let testver2; +const testfolder = "iabos"; +let ftestid; module.exports = { setUp: function (finished) { let pk = fs_1.readFileSync("./private.pem"); - sf = new index_1.default("http://localhost:3005", "test", pk.toString("utf8")); + sf = new index_1.default("http://localhost:3005/api", "test", pk.toString("utf8")); finished(); }, create: async function (test) { test.expect(2); - let res = await sf.create(testname, testdata, "text", testprev); + let res = await sf.create(testname, testdata, "text", undefined, testprev); test.ok(res); test.ok(res._id); testid = res._id; @@ -36,8 +38,8 @@ module.exports = { list: async function (test) { test.expect(4); let res = await sf.list(); - console.log(res); test.ok(res); + console.log(res); test.ok(Array.isArray(res), "Is from type Array"); test.ok(res.length > 0, "Do elements exist?"); res.forEach(e => { @@ -77,5 +79,35 @@ module.exports = { let res = await sf.delete(testid); test.ok(res); test.done(); + }, + folder: { + create: async function (test) { + test.expect(2); + let res = await sf.create(testname, testdata, "text", testfolder, testprev); + test.ok(res); + test.ok(res._id); + ftestid = res._id; + testver = res.version; + test.done(); + }, + list: async function (test) { + test.expect(4); + let res = await sf.list(testfolder); + test.ok(res); + test.ok(Array.isArray(res), "Is from type Array"); + test.ok(res.length > 0, "Do elements exist?"); + res.forEach(e => { + if (e._id === ftestid) { + test.ok(true, "Element is in List"); + } + }); + test.done(); + }, + delete: async function (test) { + test.expect(1); + let res = await sf.delete(ftestid); + test.ok(res); + test.done(); + }, } }; diff --git a/test.ts b/test.ts index 627ec3d..7c82a62 100644 --- a/test.ts +++ b/test.ts @@ -13,6 +13,8 @@ let testid: string; let testver; let testver2; +const testfolder = "iabos"; +let ftestid; interface TestType { expect(cnt: number): void; ok(value, message?: string): void; @@ -31,12 +33,12 @@ interface TestType { module.exports = { setUp: function (finished) { let pk = readFileSync("./private.pem"); - sf = new SecureFile("http://localhost:3005", "test", pk.toString("utf8")); + sf = new SecureFile("http://localhost:3005/api", "test", pk.toString("utf8")); finished(); }, create: async function (test: TestType) { test.expect(2); - let res = await sf.create(testname, testdata, "text", testprev) + let res = await sf.create(testname, testdata, "text", undefined, testprev) test.ok(res); test.ok(res._id); testid = res._id; @@ -53,8 +55,8 @@ module.exports = { list: async function (test: TestType) { test.expect(4); let res = await sf.list(); - console.log(res); test.ok(res); + console.log(res); test.ok(Array.isArray(res), "Is from type Array"); test.ok(res.length > 0, "Do elements exist?") res.forEach(e => { @@ -96,5 +98,35 @@ module.exports = { let res = await sf.delete(testid); test.ok(res); test.done(); + }, + folder: { + create: async function (test: TestType) { + test.expect(2); + let res = await sf.create(testname, testdata, "text", testfolder, testprev) + test.ok(res); + test.ok(res._id); + ftestid = res._id; + testver = res.version; + test.done(); + }, + list: async function (test: TestType) { + test.expect(4); + let res = await sf.list(testfolder); + test.ok(res); + test.ok(Array.isArray(res), "Is from type Array"); + test.ok(res.length > 0, "Do elements exist?") + res.forEach(e => { + if (e._id === ftestid) { + test.ok(true, "Element is in List") + } + }) + test.done() + }, + delete: async function (test: TestType) { + test.expect(1); + let res = await sf.delete(ftestid); + test.ok(res); + test.done(); + }, } } \ No newline at end of file