Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 0 additions & 57 deletions src/api/mapping.ts
Original file line number Diff line number Diff line change
Expand Up @@ -117,63 +117,6 @@ mappingRouter.delete('/delete/:id', async (req, res) => {
})
})

mappingRouter.patch('/:id', async (req, res) => {
const domains = getMappings()

// Make sure this domain actually exist
const existingDomain = domains.find(e => e.id === req.params.id)
if (!existingDomain) {
return res.status(400)
}

const domainList = domains.map((element: Mapping) => {
if (element.id === req.params.id) {
if (req.body.port) {
element.port = req.body.port
}
if (req.body.ip) {
element.ip = req.body.ip
}
}
return element
})
setData('mappings', domainList)

const updatedDomain = domains.find(
(element: Mapping) => element.id === req.params.id
)
const prodConfigApp = [...prodConfigure.apps][0]
prodConfigApp.name = updatedDomain.fullDomain
prodConfigApp.env_production.PORT = parseInt(updatedDomain.port, 10)
prodConfigApp.script = 'npm'
prodConfigApp.args = 'start'
const updatedConfig = {
apps: prodConfigApp
}

if (!isProduction()) {
return res.json(updatedDomain)
}

const gitUserId = await getGitUserId()
/*eslint-disable */
exec(
`
cd ${WORKPATH}/${updatedDomain.fullDomain}
echo 'module.exports = ${JSON.stringify(
updatedConfig
)}' > deploy.config.js
git add .
git commit -m "Edits deploy config file"
`,
/*eslint-enable */
{ uid: gitUserId }
).then(() => {
res.json(updatedDomain)
})
return res.json(updatedDomain)
})

mappingRouter.get('/download', (req, res) => {
const filePath = `${WORKPATH}/${req.query.fullDomain}/deploy.config.js`
res.setHeader('Content-disposition', 'attachment; filename=deploy.config.js')
Expand Down
86 changes: 0 additions & 86 deletions src/public/client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -82,9 +82,6 @@ class MappingItem {
type="button">
Delete
</button>
<button class="btn btn-sm btn-outline-primary edit" type="button">
Edit
</button>
`

const delButton = helper.getElement('.deleteButton', mappingElement)
Expand All @@ -101,89 +98,6 @@ class MappingItem {
})
}
}
const editButton = helper.getElement('.edit', mappingElement)
editButton.onclick = (): void => {
mappingElement.innerHTML = `
<div class="col d-flex">
<div class="col">
<div class="input-group m-1">
<div class="input-group-prepend">
<span class="input-group-text">Subdomain</span>
</div>
<input type="text" class="form-control subDomainName" placeholder=${data.subDomain} disabled>
</div>
<div class="input-group m-1">
<div class="input-group-prepend">
<span class="input-group-text">Domain</span>
</div>
<input type="text" class="form-control domainName" placeholder=${data.domain} disabled>
</div>
</div>

<div class="col">
<div class="input-group m-1">
<div class="input-group-prepend">
<span class="input-group-text">Port Number</span>
</div>
<input type="text" class="form-control port" placeholder=${data.port}>
</div>
<div class="input-group m-1">
<div class="input-group-prepend">
<span class="input-group-text">IP Adress</span>
</div>
<input type="text" class="form-control ip" placeholder=${data.ip}>
</div>
</div>
</div>
<div class="btn-group-vertical">
<button class="btn btn-outline-primary save">Save</button>
<button class="btn btn-outline-danger cancel">Cancel</button>
</div>
`

const cancel = helper.getElement('.cancel', mappingElement)
cancel.onclick = (): void => {
window.location.reload()
}

const save = helper.getElement('.save', mappingElement)
save.onclick = (): void => {
const domainName = helper.getElement(
'.domain',
mappingElement
) as HTMLInputElement
const subDomainName = helper.getElement(
'.subDomainName',
mappingElement
) as HTMLInputElement
const port = helper.getElement(
'.port',
mappingElement
) as HTMLInputElement
const ip = helper.getElement('.ip', mappingElement) as HTMLInputElement

const domainNameValue = domainName.value
const subDomainNameValue = subDomainName.value
const portValue = port.value
const ipValue = ip.value
const id = data.id
fetch(`/api/mappings/edit/${data.id}`, {
method: 'PATCH',
body: JSON.stringify({
domain: domainNameValue,
subDomain: subDomainNameValue,
port: portValue,
ip: ipValue,
id: id
}),
headers: {
'Content-Type': 'application/json'
}
}).then(() => {
window.location.reload()
})
}
}
}
}

Expand Down
39 changes: 0 additions & 39 deletions src/tests/integration/mapping.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -96,45 +96,6 @@ describe('/api', () => {
expect(Object.keys(mappingData).length).toEqual(0)
})

it('checks if changes to the resource has been saved', async () => {
const subDomain = `testing${uuidv4()}`
const domain = 'integration'
const port = '3457'
const ip = '123.23.25'

// Create mapping
const mapping = await mappingAdapter('/', 'POST', {
domain,
subDomain,
ip,
port
}).then(r => r.json())

// Patch created mapping with different port
// and make sure patch resolves correctly
const newPort = '2345'
const newIp = '234.34.36'
const patchMapping = await mappingAdapter(`/${mapping.id}`, 'PATCH', {
port: newPort,
ip: newIp
})
expect(patchMapping.status).toEqual(200)
const patchedMapping = await patchMapping.json()
expect(patchedMapping.id).toEqual(mapping.id)

// Get the mapping id to make sure the change is persisted
const getMapping = await mappingAdapter(`/${mapping.id}`, 'GET')
expect(getMapping.status).toEqual(200)
const mappingData = await getMapping.json()
expect(mappingData.port).toEqual(newPort)
expect(mappingData.ip).toEqual(newIp)
expect(mappingData.id).toEqual(mapping.id)

// Cleanup: Delete the mapping
const delMapping = await mappingAdapter(`/delete/${mapping.id}`, 'DELETE')
expect(delMapping.status).toEqual(200)
})

it('checks no duplicate subdomain is created for same domain', async () => {
const subDomain = `testing${uuidv4()}`
const domain = 'Sahil'
Expand Down