Browse Source

delete derived component endpoint

gh-pages
michael shanks 7 years ago
parent
commit
55bf142a95
  1. 1
      packages/server/appPackages/testApp/components/anotherSubFolder/newTextBox.json
  2. 10
      packages/server/middleware/routers.js
  3. 6
      packages/server/tests/builder.spec.js
  4. 7
      packages/server/tests/testApp.js
  5. 11
      packages/server/utilities/builder.js

1
packages/server/appPackages/testApp/components/anotherSubFolder/newTextBox.json

@ -1 +0,0 @@
{"_name":"newTextBox","_component":"./customComponents/textbox","label":"something else"}

10
packages/server/middleware/routers.js

@ -10,7 +10,8 @@ const {
savePackage, savePackage,
getApps, getApps,
saveDerivedComponent, saveDerivedComponent,
renameDerivedComponent renameDerivedComponent,
deleteDerivedComponent
} = require("../utilities/builder"); } = require("../utilities/builder");
const builderPath = resolve(__dirname, "../builder"); const builderPath = resolve(__dirname, "../builder");
@ -174,11 +175,14 @@ module.exports = (config, app) => {
ctx.request.body.newname); ctx.request.body.newname);
ctx.response.status = StatusCodes.OK; ctx.response.status = StatusCodes.OK;
}) })
.delete("/_builder/api/:appname/derivedcomponent", async (ctx) => { .delete("/_builder/api/:appname/derivedcomponent/*", async (ctx) => {
const name = ctx.request.path.replace(
`/_builder/api/${ctx.params.appname}/derivedcomponent/`, "");
await deleteDerivedComponent( await deleteDerivedComponent(
config, config,
ctx.params.appname, ctx.params.appname,
ctx.request.body.name); name);
ctx.response.status = StatusCodes.OK; ctx.response.status = StatusCodes.OK;
}) })
.get("/:appname", async (ctx) => { .get("/:appname", async (ctx) => {

6
packages/server/tests/builder.spec.js

@ -118,5 +118,11 @@ it("should be able to rename derived component", async () => {
}); });
it("should be able to delete derived component", async () => { it("should be able to delete derived component", async () => {
await app.delete("/_builder/api/testApp/derivedcomponent/anotherSubFolder/newTextBox")
.expect(statusCodes.OK);
const componentFile = "./appPackages/testApp/components/anotherSubFolder/newTextBox.json";
const componentDir = "./appPackages/testApp/components/anotherSubFolder";
expect(await pathExists(componentFile)).toBe(false);
expect(await pathExists(componentDir)).toBe(false);
}); });

7
packages/server/tests/testApp.js

@ -71,6 +71,7 @@ module.exports = () => {
post: (url, body) => postRequest(server,url,body), post: (url, body) => postRequest(server,url,body),
patch: (url, body) => patchRequest(server,url,body), patch: (url, body) => patchRequest(server,url,body),
get: (url) => getRequest(server, url), get: (url) => getRequest(server, url),
delete: (url) => deleteRequest(server, url),
credentials: { credentials: {
masterOwner: { masterOwner: {
username: masterOwnerName, username: masterOwnerName,
@ -121,6 +122,12 @@ const postRequest = (server, url, body) =>
.send(body) .send(body)
.set('Accept', 'application/json'); .set('Accept', 'application/json');
const deleteRequest = (server, url) =>
request(server)
.delete(url)
.set('Accept', 'application/json');
const getRequest = (server, url) => const getRequest = (server, url) =>
request(server) request(server)
.get(url) .get(url)

11
packages/server/utilities/builder.js

@ -10,7 +10,8 @@ const {
stat, stat,
ensureDir, ensureDir,
rename, rename,
unlink unlink,
rmdir
} = require("fs-extra"); } = require("fs-extra");
const { const {
resolve, resolve,
@ -94,7 +95,13 @@ module.exports.renameDerivedComponent = async (config, appname, oldName, newName
module.exports.deleteDerivedComponent = async (config, appname, name) => { module.exports.deleteDerivedComponent = async (config, appname, name) => {
const appPath = appPackageFolder(config, appname); const appPath = appPackageFolder(config, appname);
await unlink(componentPath(appPath, name)); const componentFile = componentPath(appPath, name);
await unlink(componentFile);
const dir = dirname(componentFile);
if((await readdir(dir)).length === 0) {
await rmdir(dir);
}
} }
const getRootComponents = async (appPath, pages ,lib) => { const getRootComponents = async (appPath, pages ,lib) => {

Loading…
Cancel
Save