Skip to content
This repository was archived by the owner on Apr 13, 2023. It is now read-only.

Commit e1094a3

Browse files
author
Matt Karl
committed
Add maximum dev releases
1 parent 3758bb3 commit e1094a3

File tree

6 files changed

+43
-4
lines changed

6 files changed

+43
-4
lines changed

app/index.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ var express = require('express'),
88
bodyParser = require('body-parser'),
99
dotenv = require('dotenv');
1010

11+
// The number of dev releases to retain
12+
global.MAX_DEV_RELEASES = 20;
13+
1114
// Load the environment file
1215
dotenv.load();
1316

app/models/release.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,25 @@ ReleaseSchema.statics.getById = function(id, callback)
110110
return this.findOne({_id: id}, callback);
111111
};
112112

113+
/**
114+
* Get a release by ids
115+
* @method getByIdsAndStatus
116+
* @static
117+
* @param {Array} ids
118+
* @param {function} callback
119+
* @return {Promise} Promise for async request
120+
*/
121+
ReleaseSchema.statics.getByIdsAndStatus = function(ids, status, callback)
122+
{
123+
return this.find(
124+
{
125+
_id: { $in: ids },
126+
status: status
127+
},
128+
callback
129+
);
130+
};
131+
113132
/**
114133
* Get all releases by game and status
115134
* @method getByGame

app/routes/api/release.js

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,24 @@ router.post('/:slug', function(req, res)
7979
{
8080
game.releases.push(release._id);
8181
game.updated = Date.now();
82-
game.save(done);
82+
game.save(function(err, result)
83+
{
84+
done(err, game);
85+
});
86+
},
87+
function(game, done)
88+
{
89+
Release.getByIdsAndStatus(game.releases, "dev", function(err, releases)
90+
{
91+
if (releases.length > MAX_DEV_RELEASES)
92+
{
93+
_.each(_.dropRight(releases, MAX_DEV_RELEASES), function(release)
94+
{
95+
Release.removeById(release._id, function(){});
96+
});
97+
}
98+
done(null, game);
99+
});
83100
}
84101
],
85102
function(err, result)

bower.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "SpringRollConnect",
3-
"version": "1.0.10",
3+
"version": "1.0.11",
44
"dependencies": {
55
"jquery": "*",
66
"bootstrap": "*",

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"version": "1.0.10",
2+
"version": "1.0.11",
33
"private": true,
44
"devDependencies": {
55
"grunt": "^0.4.5",

project.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "SpringRollConnect",
3-
"version": "1.0.10",
3+
"version": "1.0.11",
44
"main": [
55
"src/plugins/*.js",
66
"src/widgets/*.js",

0 commit comments

Comments
 (0)