Skip to content

Commit

Permalink
Merge pull request #29 from kwar0715/saving-and-duplication-functiona…
Browse files Browse the repository at this point in the history
…lities

Saving and duplication functionalities
  • Loading branch information
kwar0715 committed Aug 14, 2019
2 parents 0248c70 + d2c1182 commit f551e2c
Show file tree
Hide file tree
Showing 6 changed files with 157 additions and 96 deletions.
8 changes: 8 additions & 0 deletions public/styles/addpath.css
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,14 @@ body {
background-color: #91c0dc1a;
}

.body-text{
padding-left: 32px;
}

.body-text textarea{
overflow-x: auto;
white-space: nowrap;
}

.container {
width: 100%;
Expand Down
7 changes: 7 additions & 0 deletions routes/domainRouter.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,10 @@ domainRouter.post("/add", async function(req, res) {
try {
let name = req.body.domainName;
name = name.startsWith("/") ? name : `/${name}`;

if(name === '/admin'){
return;
}
await Database.addDomain(name);
} catch (error) {
Logger.error(`Domain Registration Error ${error}`);
Expand Down Expand Up @@ -68,6 +72,9 @@ domainRouter.post("/edit/:domainId", async function(req, res) {
try {
let newDomainName = req.body.domainName;
newDomainName = newDomainName.startsWith("/") ? newDomainName : `/${name}`;
if(name === '/admin'){
return;
}
const domain = await Database.getDomainFromId(domainId);
const domainName = domain.domainName;
const pathNames = await Database.getPathNamesForDomain(domainId);
Expand Down
26 changes: 23 additions & 3 deletions routes/pathRoutes.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,32 @@ pathRouter.get("/:domainId", async function(req, res) {
pathRouter.get("/:domainId/new", async function(req, res) {

const domainId = req.params.domainId;
const duplicationPathId = req.query.pathId;
try {
const domain = await Database.getDomainFromId(domainId);
const params = {
let params = {
domainName: domain.domainName,
domainId
domainId,
pathName: "",
pathDescription: "",
pathUrl: "",
pathMethod:'post',
authentication:false,
pathStatus:200,
header: {"Content-Type":"application/json"},
body: ""
};
if(duplicationPathId){
const duplicationPath = await Database.getPath(domainId,duplicationPathId);
console.log()
params = {
...params,
...duplicationPath.paths[0],
pathName: `${duplicationPath.paths[0].pathName} [Copy]`,
header: JSON.parse(duplicationPath.paths[0].header),
pathUrl:""
}
}
Logger.info(
`Domain New Path View {Id: ${domainId},domains:${JSON.stringify(params)}}`
);
Expand Down Expand Up @@ -186,7 +206,7 @@ pathRouter.post("/:domainId/:pathId/edit", async function(req, res) {
`Domain New Path Edited Error {id : ${domainId}, error:${error}}`
);
}
res.redirect(`/admin/domain/paths/${domainId}`);
res.redirect(`/admin/domain/paths/${domainId}/${pathId}/edit`);
});

pathRouter.get("/:domainId/:pathId/delete", async function(req, res) {
Expand Down
104 changes: 59 additions & 45 deletions views/paths/addPath.ejs
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,9 @@
>
</div>
</div>
<div class="row buttonlist">
<button type="button" class="btn btn-dark" onClick="location.href='/admin/domain/paths/<%=domainId%>'">Back</button>
</div>
</header>
<form method="POST" action="/admin/domain/paths/<%=domainId%>/new/" class="form">
<div class="form-group row">
Expand All @@ -52,6 +55,7 @@
name="name"
placeholder="Name"
class="form-control"
value="<%= pathName%>"
required
/>
</div>
Expand All @@ -64,6 +68,7 @@
name="desc"
placeholder="Description"
class="form-control"
value="<%= pathDescription%>"
/>
</div>
<div class="form-group row">
Expand All @@ -74,54 +79,63 @@
name="path"
placeholder="Path"
class="form-control"
value="<%= pathUrl%>"
required
/>
</div>
<div class="form-group row">
Method
<label for="method" class="sr-only">Method</label>
<select name="method" class="form-control">
<option value="get"> Get</option>
<option value="post">Post</option>
<option value="put">Put</option>
<option value="delete">Delete</option>
</select>
</div>
<div class="form-group row">
Status Code
<label for="statusCode" class="sr-only">Status Code</label>
<input
type="text"
name="statusCode"
placeholder="Status Code"
value="200"
class="form-control"
required
/>
</div>
<div class="form-check row">
<input type="checkbox" class="form-check-input" name="authentication">
<label class="form-check-label" for="authentication" > Authorization</label>
</div>
<div class="form-group row">
Header (Shoud use JSON format)
<label for="header" class="sr-only">Header</label>
<textarea
type="text"
name="header"
class="form-control" rows="5" required>{"Content-Type":"application/json"}</textarea>
</div>
<div class="form-group row">
Body
<label for="body" class="sr-only">Body</label>
<textarea
type="text"
name="body"
placeholder=''
class="form-control" rows="15"></textarea>
</div>
<button type="submit" class="btn btn-success">Save</button>
<button type="button" class="btn btn-dark" onClick="location.href='/domain'">Cancel</button>
<div class="row">
<div class="col-md-3">
<div class="form-group row">
Method
<label for="method" class="sr-only">Method</label>
<select name="method" class="form-control" value="Post">
<option value="get" <%=pathMethod === 'get'? 'selected' : ''%>> Get</option>
<option value="post" <%=pathMethod === 'post'? 'selected' : ''%>>Post</option>
<option value="put" <%=pathMethod === 'put'? 'selected' : ''%>>Put</option>
<option value="delete" <%=pathMethod === 'delete'? 'selected' : ''%>>Delete</option>
</select>
</div>
<div class="form-group row">
Status Code
<label for="statusCode" class="sr-only">Status Code</label>
<input
type="number"
name="statusCode"
placeholder="Status Code"
value="200"
class="form-control"
value="<%= pathStatus%>"
required
/>
</div>
<div class="form-check row">
<input type="checkbox" class="form-check-input" <%= (authentication || false)? 'checked':null%> name="authentication">
<label class="form-check-label" for="authentication" > Authorization</label>
</div>
<div class="form-group row">
Header (Shoud use JSON format)
<label for="header" class="sr-only">Header</label>
<textarea
type="text"
name="header"
class="form-control" rows="5" required><%=JSON.stringify(header)%></textarea>
</div>
<button type="submit" class="btn btn-success">Save</button>
<button type="button" class="btn btn-dark" onClick="location.href='/admin/domain/paths/<%=domainId%>'">Cancel</button>
</div>

<div class="col-md-9 body-text">
<div class="form-group row">
Body
<label for="body" class="sr-only">Body</label>
<textarea
type="text"
name="body"
placeholder=''
class="form-control" rows="15"><%=body%></textarea>
</div>
</div>
</div>
</form>
</body>
</html>
105 changes: 57 additions & 48 deletions views/paths/editPath.ejs
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,9 @@
>
</div>
</div>
<div class="row buttonlist">
<button type="button" class="btn btn-dark" onClick="location.href='/admin/domain/paths/<%=domainId%>'">Back</button>
</div>
</header>
<form method="POST" action="/admin/domain/paths/<%=domainId%>/<%=pathId%>/edit" class="form">
<div class="form-group row">
Expand Down Expand Up @@ -80,54 +83,60 @@
required
/>
</div>
<div class="form-group row">
Method
<label for="method" class="sr-only">Method</label>
<select name="method" class="form-control">
<option value="get" <%=get%>>Get</option>
<option value="post" <%=post%>>Post</option>
<option value="put" <%=put%>>Put</option>
<option value="delete" <%=del%>>Delete</option>
</select>
</div>
<div class="form-group row">
Status Code
<label for="statusCode" class="sr-only">Status Code</label>
<input
type="text"
name="statusCode"
placeholder="Status Code"
value="200"
class="form-control"
value="<%= pathStatus%>"
required
/>
</div>
<div class="form-check row">
<input type="checkbox" class="form-check-input" <%= (authentication || false)? 'checked':null%> name="authentication">
<label class="form-check-label" for="authentication" > Authorization</label>
</div>
<div class="form-group row">
Header (Shoud use JSON format)
<label for="header" class="sr-only">Header</label>
<textarea
type="text"
name="header"
class="form-control"
rows="5" required><%=JSON.stringify(header)%></textarea>
</div>
<div class="form-group row">
Body
<label for="body" class="sr-only">Body</label>
<textarea
type="text"
name="body"
placeholder=''
class="form-control"
rows="15"><%=body%></textarea>
</div>
<button type="submit" class="btn btn-success">Save</button>
<button type="button" class="btn btn-dark" onClick="location.href='/admin/domain'">Cancel</button>
<div class="row">
<div class="col-md-3">
<div class="form-group row">
Method
<label for="method" class="sr-only">Method</label>
<select name="method" class="form-control">
<option value="get" <%=get%>>Get</option>
<option value="post" <%=post%>>Post</option>
<option value="put" <%=put%>>Put</option>
<option value="delete" <%=del%>>Delete</option>
</select>
</div>
<div class="form-group row">
Status Code
<label for="statusCode" class="sr-only">Status Code</label>
<input
type="number"
name="statusCode"
placeholder="Status Code"
value="200"
class="form-control"
value="<%= pathStatus%>"
required
/>
</div>
<div class="form-check row">
<input type="checkbox" class="form-check-input" <%= (authentication || false)? 'checked':null%> name="authentication">
<label class="form-check-label" for="authentication" > Authorization</label>
</div>
<div class="form-group row">
Header (Shoud use JSON format)
<label for="header" class="sr-only">Header</label>
<textarea
type="text"
name="header"
class="form-control"
rows="5" required><%=JSON.stringify(header)%></textarea>
</div>
<button type="submit" class="btn btn-success">Save</button>
<button type="button" class="btn btn-dark" onClick="location.href='/admin/domain/paths/<%=domainId%>'">Cancel</button>
</div>
<div class="col-md-9 body-text">
<div class="form-group row">
Body
<label for="body" class="sr-only">Body</label>
<textarea
type="text"
name="body"
placeholder=''
class="form-control"
rows="15"><%=body%></textarea>
</div>
</div>
</div>
</form>
</body>
</html>
3 changes: 3 additions & 0 deletions views/paths/viewPaths.ejs
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,9 @@
<button type="button" class="btn btn-danger btn-sm" onClick="deletePath('<%=domainId%>','<%=endpoint.pathId%>')">
Delete
</button>
<button type="button" class="btn btn-warning btn-sm" onClick="window.open('/admin/domain/paths/<%=domainId%>/new?pathId=<%=endpoint.pathId%>','_blank')">
Copy
</button>
<button type="button" class="btn btn-info btn-sm" onClick="window.open('<%=apiUrl%><%=domainName%><%=endpoint.pathUrl%>','_blank')">
Go
</button>
Expand Down

0 comments on commit f551e2c

Please sign in to comment.