Skip to content

Commit 5ffd03a

Browse files
committed
Build list dynamically
1 parent bdb1f43 commit 5ffd03a

File tree

3 files changed

+46
-52
lines changed

3 files changed

+46
-52
lines changed

lib/postgres.js

Lines changed: 26 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,7 @@ const config = {
1717

1818
const pool = new Pool(config);
1919

20-
exports.getDeploymentCount = () => {
21-
22-
return new Promise((resolve) => {
20+
exports.getDeploymentCount = () => new Promise((resolve) => {
2321

2422
const selectQuery = 'SELECT count(guid) FROM deployments WHERE complete = true;';
2523

@@ -30,11 +28,8 @@ exports.getDeploymentCount = () => {
3028
resolve(result);
3129
});
3230
});
33-
};
34-
35-
exports.getNewDeployment = () => {
3631

37-
return new Promise((resolve, reject) => {
32+
exports.getNewDeployment = () => new Promise((resolve, reject) => {
3833

3934
const selectQuery = "SELECT TOP 1 guid, username, repo, settings FROM deployments WHERE stage = 'init'";
4035

@@ -45,14 +40,9 @@ exports.getNewDeployment = () => {
4540
resolve(result);
4641
});
4742
});
48-
};
49-
50-
exports.insertDeploymentStep = (guid, stage, message) => {
5143

52-
return new Promise((resolve, reject) => {
44+
exports.insertDeploymentStep = (guid, stage, message) => new Promise((resolve, reject) => {
5345

54-
// TODO: INSERT INTO deployment_steps (guid, stage, message) VALUES ('8866fb1a-c64e-e711-de95-d8f17a37ed2f', 'permset', 'Permset 'nto' assigned.')
55-
// need to escape
5646
const insertQuery = `INSERT INTO deployment_steps (guid, stage, message) VALUES ('${guid}', '${stage}', '${message}')`;
5747

5848
pool.query(insertQuery, (insertErr) => {
@@ -63,26 +53,20 @@ exports.insertDeploymentStep = (guid, stage, message) => {
6353
resolve();
6454
});
6555
});
66-
};
6756

6857

69-
exports.insertDeployment = (insertQuery) => {
70-
71-
return new Promise((resolve) => {
72-
73-
pool.query(insertQuery, (insertErr) => {
74-
if (insertErr) {
75-
console.error('insertDeployment', insertErr);
76-
resolve(insertErr);
77-
}
78-
resolve();
79-
});
80-
});
81-
};
58+
exports.insertDeployment = insertQuery => new Promise((resolve) => {
8259

83-
exports.updateDeploymentStatus = (guid, stage) => {
60+
pool.query(insertQuery, (insertErr) => {
61+
if (insertErr) {
62+
console.error('insertDeployment', insertErr);
63+
resolve(insertErr);
64+
}
65+
resolve();
66+
});
67+
});
8468

85-
return new Promise((resolve) => {
69+
exports.updateDeploymentStatus = (guid, stage) => new Promise((resolve) => {
8670

8771
const selectQuery = `UPDATE deployments SET stage = '${stage}' WHERE guid = '${guid}'`;
8872

@@ -94,11 +78,8 @@ exports.updateDeploymentStatus = (guid, stage) => {
9478
resolve(result);
9579
});
9680
});
97-
};
9881

99-
exports.getDeploymentStatus = (guid) => {
100-
101-
return new Promise((resolve) => {
82+
exports.getDeploymentStatus = guid => new Promise((resolve) => {
10283

10384
const selectQuery = `SELECT deployment_steps.message, deployment_steps.created_at, deployments.complete, deployments.stage, deployments.error_message, deployments.scratch_url FROM deployment_steps INNER JOIN deployments ON deployments.guid = deployment_steps.guid WHERE deployment_steps.guid = '${guid}' ORDER BY created_at;`;
10485

@@ -110,4 +91,15 @@ exports.getDeploymentStatus = (guid) => {
11091
resolve(result);
11192
});
11293
});
113-
};
94+
95+
exports.getChoices = () => new Promise((resolve) => {
96+
const selectQuery = 'SELECT count(*) as depl, repo FROM deployments WHERE complete = true GROUP BY repo ORDER BY depl DESC';
97+
98+
pool.query(selectQuery, (queryErr, result) => {
99+
if (queryErr) {
100+
console.error('getChoices', queryErr);
101+
resolve(queryErr);
102+
}
103+
resolve(result);
104+
});
105+
});

lib/web.js

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,7 @@ module.exports = function (app) {
2626

2727
res.render('pages/index', {
2828
deploymentCount,
29-
template: template ? template :
30-
referrer && referrer.startsWith('https://github.com') ? referrer : null
29+
template: template ? template : referrer && referrer.startsWith('https://github.com') ? referrer : null
3130
});
3231
});
3332
});
@@ -54,10 +53,15 @@ module.exports = function (app) {
5453
const user_name = req.cookies.user_name;
5554
const guid = Guid.raw();
5655

57-
res.render('pages/choose', {
58-
user_name,
59-
guid
60-
});
56+
postgresHelper.getChoices()
57+
.then((result) => {
58+
59+
res.render('pages/choose', {
60+
user_name,
61+
guid,
62+
rows: result.rows
63+
});
64+
});
6165
});
6266

6367
app.get('/repo', (req, res) => {
@@ -81,11 +85,11 @@ module.exports = function (app) {
8185
guid
8286
});
8387
} else {
84-
if (template) {
85-
return res.redirect(`/login?template=${template}`);
86-
} else {
87-
return res.redirect('/login');
88-
}
88+
if (template) {
89+
return res.redirect(`/login?template=${template}`);
90+
} else {
91+
return res.redirect('/login');
92+
}
8993
}
9094
});
9195

views/pages/choose.ejs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,14 @@
1414

1515
<fieldset class="slds-form-element">
1616
<div class="slds-form-element__control">
17-
18-
<% var urls = ['https://github.com/forcedotcom/sfdx-dreamhouse', 'https://github.com/forcedotcom/sfdx-simple', 'https://github.com/ccoenraets/northern-trail', 'https://github.com/muenzpraeger/salesforce-einstein-platform-apex'] %>
19-
<% for (var i = 0; i < urls.length; i++) { %>
20-
2117

18+
<% for (var i = 0; i < rows.length; i++) { %>
19+
2220
<span class="slds-radio">
23-
<input type="radio" id="radio-<%=i%>" name="options" <% if (i == 0) {%>checked="checked"<% } %> value="<%= urls[i] %>">
21+
<input type="radio" id="radio-<%=i%>" name="options" <% if (i == 0) {%>checked="checked"<% } %> value="<%= rows[i].repo %>">
2422
<label class="slds-radio__label" for="radio-<%=i%>">
25-
<span class="slds-radio_faux"></span> <%= urls[i] %>
26-
<span class="slds-form-element__label"><a href="<%= urls[i] %>" target="_blank">^</a></span>
23+
<span class="slds-radio_faux"></span> <%= rows[i].repo %> (<%= rows[i].depl %>)
24+
<span class="slds-form-element__label"><a href="<%= rows[i].repo %>" target="_blank">^</a></span>
2725
</label>
2826
</span>
2927

0 commit comments

Comments
 (0)