Skip to content
This repository was archived by the owner on Jan 23, 2025. It is now read-only.

Commit 5740dce

Browse files
committedSep 15, 2015
Merge pull request #459 from appirio-tech/release
Release
2 parents b3e5c97 + 7bbd271 commit 5740dce

19 files changed

+102
-81
lines changed
 

‎.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
log
33
pids
44
deploy/prod.sh
5+
deploy/env.sh
56
node_modules
67
test/tmp/submissions/*.zip
78
test/tmp/design_submissions/*.zip

‎actions/challenges.js

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,7 @@ function validateInputParameter(helper, caller, challengeType, query, filter, pa
345345
var error = helper.checkContains(['asc', 'desc'], sortOrder.toLowerCase(), "sortOrder") ||
346346
helper.checkPageIndex(pageIndex, "pageIndex") ||
347347
helper.checkPositiveInteger(pageSize, "pageSize") ||
348-
helper.checkMaxNumber(pageSize, MAX_INT, 'pageSize') ||
348+
helper.checkMaxNumber(pageSize, helper.MAX_PAGE_SIZE, 'pageSize') ||
349349
helper.checkMaxNumber(pageIndex, MAX_INT, 'pageIndex') ||
350350
helper.checkContains(helper.VALID_LIST_TYPE, type.toUpperCase(), "type") ||
351351
checkQueryParameterAndSortColumn(helper, type, query, sortColumn);
@@ -502,10 +502,13 @@ function checkQueryParameterAndSortColumnV2(helper, type, queryString, sortColum
502502
* @since 1.21
503503
*/
504504
function validateInputParameterV2(helper, caller, type, query, filter, pageIndex, pageSize, sortColumn, sortOrder, listType, dbConnectionMap, callback) {
505+
506+
var allowedPageSize = helper.ListType.ACTIVE ? helper.MAX_INT : helper.MAX_PAGE_SIZE;
507+
505508
var error = helper.checkContains(['asc', 'desc'], sortOrder.toLowerCase(), "sortOrder") ||
506509
helper.checkPageIndex(pageIndex, "pageIndex") ||
507510
helper.checkPositiveInteger(pageSize, "pageSize") ||
508-
helper.checkMaxNumber(pageSize, MAX_INT, 'pageSize') ||
511+
helper.checkMaxNumber(pageSize, allowedPageSize, 'pageSize') ||
509512
helper.checkMaxNumber(pageIndex, MAX_INT, 'pageIndex') ||
510513
checkQueryParameterAndSortColumnV2(helper, listType, query, sortColumn);
511514

@@ -938,7 +941,7 @@ var searchChallenges = function (api, connection, dbConnectionMap, community, ne
938941
sortColumn = query.sortcolumn || DEFAULT_SORT_COLUMN;
939942
listType = (query.listtype || helper.ListType.OPEN).toUpperCase();
940943
pageIndex = Number(query.pageindex || 1);
941-
pageSize = Number(query.pagesize || 50);
944+
pageSize = Number(query.pagesize || helper.MAX_PAGE_SIZE);
942945

943946
copyToFilter.forEach(function (p) {
944947
if (query.hasOwnProperty(p.toLowerCase())) {
@@ -952,7 +955,7 @@ var searchChallenges = function (api, connection, dbConnectionMap, community, ne
952955
}, function (cb) {
953956
if (pageIndex === -1) {
954957
pageIndex = 1;
955-
pageSize = MAX_INT;
958+
pageSize = helper.MAX_PAGE_SIZE;
956959
}
957960

958961
setFilter(filter, sqlParams);
@@ -3686,8 +3689,9 @@ var getChallenges = function (api, connection, listType, isMyChallenges, next) {
36863689
(!query.sortcolumn && (listType == api.helper.ListType.ACTIVE || listType == api.helper.ListType.UPCOMING) ? "asc" : "desc");
36873690
sortColumn = query.sortcolumn || DEFAULT_SORT_COLUMN;
36883691
pageIndex = Number(query.pageindex || 1);
3689-
pageSize = Number(query.pagesize || 150);
3690-
3692+
pageSize = Number(query.pagesize ||
3693+
(listType == api.helper.ListType.ACTIVE ? helper.MAX_INT : helper.MAX_PAGE_SIZE));
3694+
36913695
if (isMyChallenges) {
36923696
index = copyToFilter.indexOf('type');
36933697
copyToFilter.splice(index, 1);
@@ -3727,7 +3731,7 @@ var getChallenges = function (api, connection, listType, isMyChallenges, next) {
37273731
}, function (cb) {
37283732
if (pageIndex === -1) {
37293733
pageIndex = 1;
3730-
pageSize = MAX_INT;
3734+
pageSize = helper.MAX_PAGE_SIZE;
37313735
}
37323736

37333737
setFilterV2(filter, sqlParams);

‎actions/dataScienceChallenges.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ function pastDataScienceChallenges(pageIndex, pageSize, sortingColumnName, sorti
7979
submissionEndTo, api, connection, callback) {
8080
if (pageIndex === NO_PAGING) {
8181
pageIndex = 1;
82-
pageSize = MAX_INT;
82+
pageSize = helper.MAX_PAGE_SIZE;
8383
}
8484

8585
var sqlParams = {};
@@ -270,15 +270,15 @@ exports.pastDataScienceChallenges = {
270270
async.waterfall([
271271
function (cb) { // Parse and validate request parameters
272272
pageIndex = Number(connection.params.pageIndex || 1);
273-
pageSize = Number(connection.params.pageSize || 50);
273+
pageSize = Number(connection.params.pageSize || helper.MAX_PAGE_SIZE);
274274
sortingOrder = connection.params.sortOrder || PAST_CHALLENGES_DEFAULT_SORT_ORDER;
275275
sortingColumnName = connection.params.sortColumn || PAST_CHALLENGES_DEFAULT_SORT_COLUMN;
276276

277277
err = helper.checkContains([SORTING_ORDER_ASCENDING, SORTING_ORDER_DESCENDING], sortingOrder.toLowerCase(), "sortOrder")
278278
|| helper.checkContains(PAST_CHALLENGES_DATA_COLUMN_NAMES, sortingColumnName.toLowerCase(), "sortColumn")
279279
|| helper.checkPageIndex(pageIndex, "pageIndex")
280280
|| helper.checkPositiveInteger(pageSize, "pageSize")
281-
|| helper.checkMaxInt(pageSize, 'pageSize');
281+
|| helper.checkMaxNumber(pageSize,helper.MAX_PAGE_SIZE,'pageSize');
282282

283283
if (err) {
284284
cb(err);

‎actions/marathonChallenges.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ exports.searchMarathonChallenges = {
137137
sortOrder = (params.sortOrder || "asc").toLowerCase();
138138
sortColumn = (params.sortColumn || "roundId").toLowerCase();
139139
pageIndex = Number(params.pageIndex || 1);
140-
pageSize = Number(params.pageSize || 50);
140+
pageSize = Number(params.pageSize || helper.MAX_PAGE_SIZE);
141141

142142
if (!_.isDefined(params.sortOrder) && sortColumn === "roundid") {
143143
sortOrder = "desc";
@@ -180,7 +180,7 @@ exports.searchMarathonChallenges = {
180180
}
181181
error = error ||
182182
helper.checkMaxNumber(pageIndex, MAX_INT, "pageIndex") ||
183-
helper.checkMaxNumber(pageSize, MAX_INT, "pageSize") ||
183+
helper.checkMaxNumber(pageSize, helper.MAX_PAGE_SIZE, "pageSize") ||
184184
helper.checkPageIndex(pageIndex, "pageIndex") ||
185185
helper.checkPositiveInteger(pageSize, "pageSize") ||
186186
helper.checkContains(ALLOWABLE_LIST_TYPE, listType, "listType") ||
@@ -203,7 +203,7 @@ exports.searchMarathonChallenges = {
203203

204204
if (pageIndex === -1) {
205205
pageIndex = 1;
206-
pageSize = MAX_INT;
206+
pageSize = helper.MAX_PAGE_SIZE;
207207
}
208208
sqlParams = {
209209
firstRowIndex: (pageIndex - 1) * pageSize,

‎actions/memDump.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ exports.dumpMemory = {
1111
required: [],
1212
optional: []
1313
},
14+
outputExample: {},
15+
cacheEnabled: false,
1416
version: 'v2',
1517
run: function (api, connection, next) {
1618
if (process.env.ADMIN_API_KEY && connection.params.apiKey === process.env.ADMIN_API_KEY) {

‎actions/memberSearch.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ var searchUsers = function (api, connection, dbConnectionMap, next) {
2222
result = {},
2323
sqlParams = {},
2424
pageIndex = Number(connection.params.pageIndex || 1),
25-
pageSize = Number(connection.params.pageSize || 10),
25+
pageSize = Number(connection.params.pageSize || helper.MAX_PAGE_SIZE),
2626
caseSensitive = (connection.params.caseSensitive || "false").toLowerCase(),
2727
handle = connection.params.handle;
2828

@@ -36,7 +36,7 @@ var searchUsers = function (api, connection, dbConnectionMap, next) {
3636
var error = helper.checkPositiveInteger(pageIndex, "pageIndex") ||
3737
helper.checkMaxNumber(pageIndex, helper.MAX_INT, "pageIndex") ||
3838
helper.checkPositiveInteger(pageSize, "pageSize") ||
39-
helper.checkMaxNumber(pageSize, 500, "pageSize") ||
39+
helper.checkMaxNumber(pageSize, helper.MAX_PAGE_SIZE, "pageSize") ||
4040
helper.checkStringPopulated(handle, "handle");
4141
if (error) {
4242
callback(error);

‎actions/payments.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ var searchPayments = function (api, connection, next) {
7373
var error, i,
7474
helper = api.helper,
7575
pageIndex = Number(connection.params.pageIndex || 1),
76-
pageSize = Number(connection.params.pageSize || 10),
76+
pageSize = Number(connection.params.pageSize || helper.MAX_PAGE_SIZE),
7777
status = connection.params.status,
7878
type = connection.params.type,
7979
sortColumn = (connection.params.sortColumn || "createDate").toLowerCase(),
@@ -98,7 +98,7 @@ var searchPayments = function (api, connection, next) {
9898
error = helper.checkPositiveInteger(pageIndex, "pageIndex")
9999
|| helper.checkMaxInt(pageIndex, "pageIndex")
100100
|| helper.checkPositiveInteger(pageSize, "pageSize")
101-
|| helper.checkMaxInt(pageSize, "pageSize")
101+
|| helper.checkMaxNumber(pageSize,helper.MAX_PAGE_SIZE,"pageSize")
102102
|| helper.checkMember(connection)
103103
|| helper.checkContains(["asc", "desc"], sortOrder.toLowerCase(), "sortOrder")
104104
|| helper.checkSortColumn(ALLOWABLE_SORT_COLUMN, sortColumn)

‎actions/reviewOpportunities.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -346,7 +346,7 @@ var validateInputParameter = function (helper, connection, filter, isStudio, cb)
346346
error;
347347

348348
params = connection.params;
349-
pageSize = Number(params.pageSize || 10);
349+
pageSize = Number(params.pageSize || helper.MAX_PAGE_SIZE);
350350
pageIndex = Number(params.pageIndex || 1);
351351
sortOrder = params.sortOrder || 'asc';
352352
sortColumn = params.sortColumn || 'challengeName';
@@ -356,7 +356,7 @@ var validateInputParameter = function (helper, connection, filter, isStudio, cb)
356356
error =
357357
helper.checkPageIndex(pageIndex, 'pageIndex') ||
358358
helper.checkPositiveInteger(pageSize, 'pageSize') ||
359-
helper.checkMaxInt(pageSize, 'pageSize') ||
359+
helper.checkMaxNumber(pageSize, helper.MAX_PAGE_SIZE,'pageSize') ||
360360
helper.checkContains(helper.getLowerCaseList(allowedSortColumn), sortColumn.toLowerCase(), 'sortColumn') ||
361361
helper.checkContains(helper.getLowerCaseList(ALLOWABLE_SORT_ORDER), sortOrder.toLowerCase(), 'sortOrder');
362362

@@ -481,7 +481,7 @@ var getReviewOpportunities = function (api, connection, isStudio, next) {
481481
var helper = api.helper, result = {}, sqlParams, dbConnectionMap = connection.dbConnectionMap, pageIndex,
482482
pageSize, sortOrder, sortColumn, filter = {}, reviewOpportunities, queryName;
483483

484-
pageSize = Number(connection.params.pageSize || 10);
484+
pageSize = Number(connection.params.pageSize || helper.MAX_PAGE_SIZE);
485485
pageIndex = Number(connection.params.pageIndex || 1);
486486
sortOrder = connection.params.sortOrder || 'asc';
487487
sortColumn = connection.params.sortColumn || 'challengeName';
@@ -494,7 +494,7 @@ var getReviewOpportunities = function (api, connection, isStudio, next) {
494494

495495
if (pageIndex === -1) {
496496
pageIndex = 1;
497-
pageSize = helper.MAX_INT;
497+
pageSize = helper.MAX_PAGE_SIZE;
498498
}
499499

500500
sqlParams = {

‎actions/rounds.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ var getRounds = function (api, connection, dbConnectionMap, next) {
216216
sortOrder = (params.sortOrder || "asc").toLowerCase();
217217
sortColumn = (params.sortColumn || "registrationPhaseStartTime").toLowerCase();
218218
pageIndex = Number(params.pageIndex || 1);
219-
pageSize = Number(params.pageSize || 50);
219+
pageSize = Number(params.pageSize || helper.MAX_PAGE_SIZE);
220220

221221
async.waterfall([
222222
function (cb) {
@@ -240,7 +240,7 @@ var getRounds = function (api, connection, dbConnectionMap, next) {
240240
}
241241
}
242242
error = error ||
243-
helper.checkMaxNumber(pageSize, helper.MAX_INT, "pageSize") ||
243+
helper.checkMaxNumber(pageSize, helper.MAX_PAGE_SIZE, "pageSize") ||
244244
helper.checkPageIndex(pageIndex, "pageIndex") ||
245245
helper.checkPositiveInteger(pageSize, "pageSize") ||
246246
helper.checkContains(["asc", "desc"], sortOrder, "sortOrder") ||
@@ -285,7 +285,7 @@ var getRounds = function (api, connection, dbConnectionMap, next) {
285285
}, function (typeIds, cb) {
286286
if (pageIndex === -1) {
287287
pageIndex = 1;
288-
pageSize = helper.MAX_INT;
288+
pageSize = helper.MAX_PAGE_SIZE;
289289
}
290290

291291
filterCondition = ' r.round_id > 0 ';

‎actions/srmChallenges.js

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -217,11 +217,6 @@ var DATE_FORMAT = "YYYY-MM-DD HH:mm";
217217
*/
218218
var MAX_INT = 2147483647;
219219

220-
/**
221-
* The default page size
222-
*/
223-
var DEFAULT_PAGE_SIZE = 50;
224-
225220
/**
226221
* Default number of leaders to show in SRM details
227222
*/
@@ -265,7 +260,7 @@ exports.searchSRMChallenges = {
265260
sortColumn = "roundid";
266261
}
267262
pageIndex = Number(params.pageIndex || 1);
268-
pageSize = Number(params.pageSize || DEFAULT_PAGE_SIZE);
263+
pageSize = Number(params.pageSize || helper.MAX_PAGE_SIZE);
269264
listType = (params.listType || 'ACTIVE').toUpperCase();
270265
challengeName = _.has(params, 'challengeName') ? '%' + params.challengeName.toLowerCase() + '%' : '%';
271266

@@ -287,7 +282,7 @@ exports.searchSRMChallenges = {
287282
}
288283
error = error ||
289284
helper.checkMaxNumber(pageIndex, MAX_INT, "pageIndex") ||
290-
helper.checkMaxNumber(pageSize, MAX_INT, "pageSize") ||
285+
helper.checkMaxNumber(pageSize, helper.MAX_PAGE_SIZE, "pageSize") ||
291286
helper.checkPageIndex(pageIndex, "pageIndex") ||
292287
helper.checkPositiveInteger(pageSize, "pageSize") ||
293288
helper.checkContains(["asc", "desc"], sortOrder, "sortOrder") ||
@@ -301,7 +296,7 @@ exports.searchSRMChallenges = {
301296

302297
if (pageIndex === -1) {
303298
pageIndex = 1;
304-
pageSize = MAX_INT;
299+
pageSize = helper.MAX_PAGE_SIZE;
305300
}
306301
sqlParams = {
307302
firstRowIndex: (pageIndex - 1) * pageSize,
@@ -720,7 +715,7 @@ exports.getSRMSchedule = {
720715
sortColumn = (params.sortColumn || "registrationStartTime").toLowerCase();
721716

722717
pageIndex = Number(params.pageIndex || 1);
723-
pageSize = Number(params.pageSize || DEFAULT_PAGE_SIZE);
718+
pageSize = Number(params.pageSize || helper.MAX_PAGE_SIZE);
724719

725720
if (!_.isDefined(params.sortOrder) && sortColumn === "registrationstarttime") {
726721
sortOrder = "desc";
@@ -734,7 +729,7 @@ exports.getSRMSchedule = {
734729
}
735730
error = error ||
736731
helper.checkMaxNumber(pageIndex, MAX_INT, "pageIndex") ||
737-
helper.checkMaxNumber(pageSize, MAX_INT, "pageSize") ||
732+
helper.checkMaxNumber(pageSize, helper.MAX_PAGE_SIZE, "pageSize") ||
738733
helper.checkPageIndex(pageIndex, "pageIndex") ||
739734
helper.checkPositiveInteger(pageSize, "pageSize") ||
740735
helper.checkContains(["asc", "desc"], sortOrder, "sortOrder") ||
@@ -757,7 +752,7 @@ exports.getSRMSchedule = {
757752

758753
if (pageIndex === -1) {
759754
pageIndex = 1;
760-
pageSize = MAX_INT;
755+
pageSize = helper.MAX_PAGE_SIZE;
761756
}
762757
SCHEDULE_TIMEZONE = api.config.tcConfig.databaseTimezoneIdentifier;
763758
cb(error);
@@ -2402,7 +2397,7 @@ function getPracticeProblems(api, connection, next) {
24022397
myPointsUpperBound,
24032398
caller = connection.caller,
24042399
pageIndex = Number(connection.params.pageIndex || 1),
2405-
pageSize = Number(connection.params.pageSize || 10),
2400+
pageSize = Number(connection.params.pageSize || helper.MAX_PAGE_SIZE),
24062401
sortColumn = connection.params.sortColumn || 'problemId',
24072402
sortOrder = connection.params.sortOrder || helper.consts.ASCENDING,
24082403
exeQuery = function (query) {
@@ -2414,7 +2409,7 @@ function getPracticeProblems(api, connection, next) {
24142409
function (cb) {
24152410
var error = helper.checkPageIndex(pageIndex, 'pageIndex') ||
24162411
helper.checkPositiveInteger(pageSize, 'pageSize') ||
2417-
helper.checkMaxInt(pageSize, 'pageSize') ||
2412+
helper.checkMaxNumber(pageSize, helper.MAX_PAGE_SIZE, 'pageSize') ||
24182413
helper.checkContains(['asc', 'desc'], sortOrder.toLowerCase(), 'sortOrder') ||
24192414
helper.checkSortColumn(VALID_PRACTICE_PROBLEMS_SORT_COLUMN, sortColumn.toLowerCase()) ||
24202415
helper.checkMember(connection, 'Only logged in user can access to this endpoint.');

‎actions/tops.js

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ var getTops = function (api, connection, dbConnectionMap, next) {
4848
result = {},
4949
active = false;
5050
pageIndex = Number(connection.params.pageIndex || 1);
51-
pageSize = Number(connection.params.pageSize || 50);
51+
pageSize = Number(connection.params.pageSize || helper.MAX_PAGE_SIZE);
5252

5353
async.waterfall([
5454
function (cb) {
@@ -57,7 +57,7 @@ var getTops = function (api, connection, dbConnectionMap, next) {
5757
}
5858
error = error ||
5959
helper.checkMaxNumber(pageIndex, MAX_INT, "pageIndex") ||
60-
helper.checkMaxNumber(pageSize, MAX_INT, "pageSize") ||
60+
helper.checkMaxNumber(pageSize, helper.MAX_PAGE_SIZE, "pageSize") ||
6161
helper.checkPageIndex(pageIndex, "pageIndex") ||
6262
helper.checkPositiveInteger(pageSize, "pageSize") ||
6363
helper.checkContains(Object.keys(helper.softwareChallengeTypes), challengeType, "challengeType");
@@ -68,7 +68,7 @@ var getTops = function (api, connection, dbConnectionMap, next) {
6868
active = helper.softwareChallengeTypes[challengeType].active;
6969
if (pageIndex === -1) {
7070
pageIndex = 1;
71-
pageSize = MAX_INT;
71+
pageSize = helper.MAX_PAGE_SIZE;
7272
}
7373
sqlParams.firstRowIndex = (pageIndex - 1) * pageSize;
7474
sqlParams.pageSize = pageSize;
@@ -125,7 +125,7 @@ var getTops = function (api, connection, dbConnectionMap, next) {
125125
var getStudioTops = function (api, connection, dbConnectionMap, next) {
126126
var helper = api.helper, sqlParams = {}, pageIndex, pageSize, error, challengeType = connection.params.challengeType.toLowerCase(), result = {};
127127
pageIndex = Number(connection.params.pageIndex || 1);
128-
pageSize = Number(connection.params.pageSize || 10);
128+
pageSize = Number(connection.params.pageSize || helper.MAX_PAGE_SIZE);
129129

130130
async.waterfall([
131131
function (cb) {
@@ -137,7 +137,7 @@ var getStudioTops = function (api, connection, dbConnectionMap, next) {
137137
}
138138
error = error ||
139139
helper.checkMaxNumber(pageIndex, MAX_INT, 'pageIndex') ||
140-
helper.checkMaxNumber(pageSize, MAX_INT, 'pageSize') ||
140+
helper.checkMaxNumber(pageSize, helper.MAX_PAGE_SIZE, 'pageSize') ||
141141
helper.checkPageIndex(pageIndex, 'pageIndex') ||
142142
helper.checkPositiveInteger(pageSize, 'pageSize') ||
143143
helper.checkContains(Object.keys(helper.studioChallengeTypes), challengeType, 'challengeType');
@@ -147,7 +147,7 @@ var getStudioTops = function (api, connection, dbConnectionMap, next) {
147147
}
148148
if (pageIndex === -1) {
149149
pageIndex = 1;
150-
pageSize = MAX_INT;
150+
pageSize = helper.MAX_PAGE_SIZE;
151151
}
152152
sqlParams.firstRowIndex = (pageIndex - 1) * pageSize;
153153
sqlParams.pageSize = pageSize;
@@ -277,7 +277,7 @@ exports.getMarathonTops = {
277277
dbConnectionMap = connection.dbConnectionMap,
278278
result = {};
279279
pageIndex = Number(connection.params.pageIndex || 1);
280-
pageSize = Number(connection.params.pageSize || 10);
280+
pageSize = Number(connection.params.pageSize || helper.MAX_PAGE_SIZE);
281281

282282
async.waterfall([
283283
function (cb) {
@@ -287,7 +287,7 @@ exports.getMarathonTops = {
287287
}
288288
error = error ||
289289
helper.checkMaxNumber(pageIndex, MAX_INT, "pageIndex") ||
290-
helper.checkMaxNumber(pageSize, MAX_INT, "pageSize") ||
290+
helper.checkMaxNumber(pageSize, helper.MAX_PAGE_SIZE, "pageSize") ||
291291
helper.checkPageIndex(pageIndex, "pageIndex") ||
292292
helper.checkPositiveInteger(pageSize, "pageSize") ||
293293
helper.checkContains(["competitors", "schools", "countries"], rankType, "rankType");
@@ -297,7 +297,7 @@ exports.getMarathonTops = {
297297
}
298298
if (pageIndex === -1) {
299299
pageIndex = 1;
300-
pageSize = MAX_INT;
300+
pageSize = helper.MAX_PAGE_SIZE;
301301
}
302302
switch (rankType) {
303303
case "competitors":
@@ -400,7 +400,7 @@ exports.getSRMTops = {
400400
return;
401401
}
402402
pageIndex = Number(connection.params.pageIndex || 1);
403-
pageSize = Number(connection.params.pageSize || 10);
403+
pageSize = Number(connection.params.pageSize || helper.MAX_PAGE_SIZE);
404404

405405
async.waterfall([
406406
function (cb) {
@@ -410,7 +410,7 @@ exports.getSRMTops = {
410410
}
411411
error = error ||
412412
helper.checkMaxNumber(pageIndex, MAX_INT, "pageIndex") ||
413-
helper.checkMaxNumber(pageSize, MAX_INT, "pageSize") ||
413+
helper.checkMaxNumber(pageSize, helper.MAX_PAGE_SIZE, "pageSize") ||
414414
helper.checkPageIndex(pageIndex, "pageIndex") ||
415415
helper.checkPositiveInteger(pageSize, "pageSize") ||
416416
helper.checkContains(["competitors", "schools", "countries"], rankType, "rankType");
@@ -420,7 +420,7 @@ exports.getSRMTops = {
420420
}
421421
if (pageIndex === -1) {
422422
pageIndex = 1;
423-
pageSize = MAX_INT;
423+
pageSize = helper.MAX_PAGE_SIZE;
424424
}
425425
switch (rankType) {
426426
case "competitors":
@@ -497,11 +497,6 @@ exports.getSRMTops = {
497497
*/
498498
var VALID_TRACK_TYPES = ['design', 'develop', 'data'];
499499

500-
/**
501-
* Maximum page size
502-
*/
503-
var MAX_PAGE_SIZE = 1000;
504-
505500
/**
506501
* The API for top track members of develop, design and data.
507502
*/
@@ -523,7 +518,7 @@ exports.getTopTrackMembers = {
523518
var helper = api.helper,
524519
trackType = connection.params.trackType.toLowerCase(),
525520
pageIndex = Number(connection.params.pageIndex || 1),
526-
pageSize = Number(connection.params.pageSize || 50),
521+
pageSize = Number(connection.params.pageSize || helper.MAX_PAGE_SIZE),
527522
dbConnectionMap = connection.dbConnectionMap,
528523
result = {},
529524
error,
@@ -539,7 +534,7 @@ exports.getTopTrackMembers = {
539534
}
540535
error = error ||
541536
helper.checkMaxNumber(pageIndex, MAX_INT, 'pageIndex') ||
542-
helper.checkMaxNumber(pageSize, MAX_PAGE_SIZE, 'pageSize') ||
537+
helper.checkMaxNumber(pageSize, helper.MAX_PAGE_SIZE, 'pageSize') ||
543538
helper.checkPageIndex(pageIndex, 'pageIndex') ||
544539
helper.checkPositiveInteger(pageSize, 'pageSize') ||
545540
helper.checkContains(VALID_TRACK_TYPES, trackType, 'trackType');
@@ -549,7 +544,7 @@ exports.getTopTrackMembers = {
549544
}
550545
if (pageIndex === -1) {
551546
pageIndex = 1;
552-
pageSize = MAX_PAGE_SIZE; // No paging, show max allowed.
547+
pageSize = helper.MAX_PAGE_SIZE; // No paging, show max allowed.
553548
}
554549
// Retrieves total number of top members for the given track.
555550
api.dataAccess.executeQuery('get_top_members_' + trackType + '_count', sqlParams, dbConnectionMap, cb);

‎actions/user.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -522,7 +522,7 @@ function getUserMarathonMatches(api, connection, next) {
522522
},
523523
handle = connection.params.handle,
524524
pageIndex = Number(connection.params.pageIndex || 1),
525-
pageSize = Number(connection.params.pageSize || 10);
525+
pageSize = Number(connection.params.pageSize || helper.MAX_PAGE_SIZE);
526526

527527
sortOrder = (connection.params.sortOrder || "asc").toLowerCase();
528528
sortColumn = connection.params.sortColumn || "id";
@@ -535,7 +535,7 @@ function getUserMarathonMatches(api, connection, next) {
535535
}
536536

537537
if (pageIndex === -1) {
538-
pageSize = helper.MAX_INT;
538+
pageSize = helper.MAX_PAGE_SIZE;
539539
pageIndex = 1;
540540
}
541541

@@ -549,7 +549,7 @@ function getUserMarathonMatches(api, connection, next) {
549549
var error = helper.checkPageIndex(pageIndex, "pageIndex")
550550
|| helper.checkStringParameter(handle, "handle", 30)
551551
|| helper.checkPositiveInteger(pageSize, "pageSize")
552-
|| helper.checkMaxInt(pageSize, "pageSize")
552+
|| helper.checkMaxNumber(pageSize, helper.MAX_PAGE_SIZE,"pageSize")
553553
|| helper.checkContains(['asc', 'desc'], sortOrder, "sortOrder")
554554
|| helper.checkSortColumn(VALID_SORT_COLUMN_MARATHON_MATCH, sortColumn.toLowerCase());
555555
cb(error);
@@ -645,7 +645,7 @@ function getUserAlgorithmChallenges(api, connection, next) {
645645
},
646646
handle = connection.params.handle,
647647
pageIndex = Number(connection.params.pageIndex || 1),
648-
pageSize = Number(connection.params.pageSize || 10);
648+
pageSize = Number(connection.params.pageSize || helper.MAX_PAGE_SIZE);
649649

650650
// If the sortOrder is set and sortColumn is missing.
651651
if (connection.params.sortOrder && !connection.params.sortColumn) {
@@ -658,7 +658,7 @@ function getUserAlgorithmChallenges(api, connection, next) {
658658
sortColumn = connection.params.sortColumn || "id";
659659

660660
if (pageIndex === -1) {
661-
pageSize = helper.MAX_INT;
661+
pageSize = helper.MAX_PAGE_SIZE;
662662
pageIndex = 1;
663663
}
664664

@@ -672,7 +672,7 @@ function getUserAlgorithmChallenges(api, connection, next) {
672672
var error = helper.checkPageIndex(pageIndex, "pageIndex")
673673
|| helper.checkStringParameter(handle, "handle", 30)
674674
|| helper.checkPositiveInteger(pageSize, "pageSize")
675-
|| helper.checkMaxInt(pageSize, "pageSize")
675+
|| helper.checkMaxNumber(pageSize,helper.MAX_PAGE_SIZE, "pageSize")
676676
|| helper.checkContains(['asc', 'desc'], sortOrder, "sortOrder")
677677
|| helper.checkSortColumn(VALID_SORT_COLUMN_ALGO_CHALLENGES, sortColumn.toLowerCase());
678678
cb(error);

‎actions/userDesignChallenges.js

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,6 @@ var _ = require('underscore');
1616
var BadRequestError = require('../errors/BadRequestError');
1717
var NotFoundError = require('../errors/NotFoundError');
1818

19-
/**
20-
* The default pzge size.
21-
*/
22-
var DEFAULT_PAGE_SIZE = 50;
23-
2419
/**
2520
* The constants of project type.
2621
*/
@@ -92,7 +87,7 @@ var getUserChallenges = function (api, connection, challengeType, next) {
9287
sortOrder = (params.sortOrder || "asc").toLowerCase();
9388
sortColumn = (params.sortColumn || "id").toLowerCase();
9489
pageIndex = Number(params.pageIndex || 1);
95-
pageSize = Number(params.pageSize || DEFAULT_PAGE_SIZE);
90+
pageSize = Number(params.pageSize || helper.MAX_PAGE_SIZE);
9691

9792
if (!_.isDefined(params.sortOrder) && sortColumn === "id") {
9893
sortOrder = "desc";
@@ -109,7 +104,7 @@ var getUserChallenges = function (api, connection, challengeType, next) {
109104
}
110105
error = error ||
111106
helper.checkMaxNumber(pageIndex, helper.MAX_INT, "pageIndex") ||
112-
helper.checkMaxNumber(pageSize, helper.MAX_INT, "pageSize") ||
107+
helper.checkMaxNumber(pageSize, helper.MAX_PAGE_SIZE, "pageSize") ||
113108
helper.checkPageIndex(pageIndex, "pageIndex") ||
114109
helper.checkPositiveInteger(pageSize, "pageSize") ||
115110
helper.checkContains(["asc", "desc"], sortOrder, "sortOrder") ||

‎actions/userDevelopChallenges.js

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,6 @@ var async = require('async');
1515
var _ = require('underscore');
1616
var BadRequestError = require('../errors/BadRequestError');
1717
var NotFoundError = require('../errors/NotFoundError');
18-
/**
19-
* The default pzge size.
20-
*/
21-
var DEFAULT_PAGE_SIZE = 50;
2218
/**
2319
* The constants of project type.
2420
*/
@@ -72,7 +68,7 @@ var getUserChallenges = function (api, connection, challengeType, next) {
7268
sortOrder = (params.sortOrder || "asc").toLowerCase();
7369
sortColumn = (params.sortColumn || "id").toLowerCase();
7470
pageIndex = Number(params.pageIndex || 1);
75-
pageSize = Number(params.pageSize || DEFAULT_PAGE_SIZE);
71+
pageSize = Number(params.pageSize || helper.MAX_PAGE_SIZE);
7672

7773
if (!_.isDefined(params.sortOrder) && sortColumn === "id") {
7874
sortOrder = "desc";
@@ -89,7 +85,7 @@ var getUserChallenges = function (api, connection, challengeType, next) {
8985
}
9086
error = error ||
9187
helper.checkMaxNumber(pageIndex, helper.MAX_INT, "pageIndex") ||
92-
helper.checkMaxNumber(pageSize, helper.MAX_INT, "pageSize") ||
88+
helper.checkMaxNumber(pageSize, helper.MAX_PAGE_SIZE, "pageSize") ||
9389
helper.checkPageIndex(pageIndex, "pageIndex") ||
9490
helper.checkPositiveInteger(pageSize, "pageSize") ||
9591
helper.checkContains(["asc", "desc"], sortOrder, "sortOrder") ||

‎config/logger.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ exports.default = {
1212
logger.transports.push(function (api, winston) {
1313
return new (winston.transports.Console)({
1414
colorize: true,
15-
level: 'info',
15+
level: 'debug',
1616
timestamp: api.utils.sqlDateTime,
1717
json: false
1818
});
@@ -31,7 +31,7 @@ exports.default = {
3131
logger.transports.push(function (api, winston) {
3232
return new (winston.transports.File)({
3333
filename: api.config.general.paths.log[0] + '/actionhero-worker.log',
34-
level: 'info',
34+
level: 'debug',
3535
colorize: true,
3636
timestamp: api.utils.sqlDateTime,
3737
json: false

‎initializers/dataAccess.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,10 @@ exports.dataAccess = function (api, next) {
178178
var error, dbServerPrefix = api.config.tcConfig.databaseMapping[databaseName],
179179
user, password, hostname, server, port, settings;
180180
error = helper.checkDefined(dbServerPrefix, "database server prefix");
181+
182+
api.log('Creating a new db connection at dataAccess','debug');
181183
if (error) {
184+
api.log('Error : ' + error, 'error');
182185
throw error;
183186
}
184187

‎initializers/helper.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,11 @@ helper.SUBMISSION_TYPE = {
204204
*/
205205
helper.MAX_INT = 2147483647;
206206

207+
/**
208+
* Max value for page size
209+
*/
210+
helper.MAX_PAGE_SIZE = 100;
211+
207212
/**
208213
* HASH KEY For Password
209214
*

‎initializers/transaction.js

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,18 @@
88

99
/*jslint unparam: true */
1010

11+
var CONN_TIMEOUT = process.env.CONN_TIMEOUT || 5000;
12+
var DISCONNECT_ON_CONN_TIMEOUT = process.env.DISCONNECT_ON_CONN_TIMEOUT !== "false" ? true : false;
13+
var DISCONN_TIMEOUT = process.env.DISCONN_TIMEOUT || 5000;
14+
1115
var handleConnectionFailure = function (api, connection, actionTemplate, error, next) {
1216
api.log("Close all opened connections", "debug");
1317
var connectionClosedCount = 0;
1418
actionTemplate.databases.forEach(function (databaseName) {
1519
var callback;
1620
callback = function (err, result) {
1721
connection.dbConnectionMap[databaseName].disconnect();
18-
api.log("Connection is closed", "debug");
22+
api.log("Connection is closed for " + databaseName, "debug");
1923
if (err) {
2024
connection.error = err;
2125
next(connection, false);
@@ -57,6 +61,15 @@ exports.transaction = function (api, next) {
5761
transactionPreProcessor = function (connection, actionTemplate, next) {
5862
if (actionTemplate.transaction === "read" || actionTemplate.transaction === "write") {
5963
var dbConnectionMap = {}, dbConnection, callback, connectionOpenedCount = 0;
64+
65+
var connectTimeout = function() {
66+
api.log("Timed out without obtaining all DB connections", "error");
67+
if (DISCONNECT_ON_CONN_TIMEOUT) {
68+
handleConnectionFailure(api, connection, actionTemplate, "Open Timeout", next);
69+
}
70+
}
71+
72+
var clearMe = setTimeout(connectTimeout, CONN_TIMEOUT);
6073

6174
actionTemplate.databases.forEach(function (databaseName) {
6275
dbConnection = api.dataAccess.createConnection(databaseName);
@@ -68,12 +81,14 @@ exports.transaction = function (api, next) {
6881
callback = function (err, result) {
6982
connection.dbConnectionMap = dbConnectionMap;
7083
if (err) {
84+
clearTimeout(clearMe);
7185
handleConnectionFailure(api, connection, actionTemplate, err, next);
7286
return;
7387
}
7488

7589
connectionOpenedCount += 1;
7690
if (connectionOpenedCount === actionTemplate.databases.length) {
91+
clearTimeout(clearMe);
7792
api.log("All connections are opened", "debug");
7893
next(connection, true);
7994
}
@@ -121,6 +136,14 @@ exports.transaction = function (api, next) {
121136
* @param {Function} next - The callback function
122137
*/
123138
transactionPostProcessor = function (connection, actionTemplate, toRender, next) {
139+
140+
var disconnectTimeout = function() {
141+
api.error("Timed out without closing all DB connections", "error");
142+
// I dont want to call next(connection); here because I want to allow the execution to to continue in case connection can be closed after timeout
143+
}
144+
145+
var clearMe = setTimeout(disconnectTimeout, DISCONN_TIMEOUT);
146+
124147
var connectionClosedCount = 0;
125148
if (connection.dbConnectionMap !== null && connection.dbConnectionMap !== undefined && actionTemplate.transaction !== null && actionTemplate.transaction !== undefined) {
126149
actionTemplate.databases.forEach(function (databaseName) {
@@ -129,13 +152,15 @@ exports.transaction = function (api, next) {
129152
connection.dbConnectionMap[databaseName].disconnect();
130153
api.log("Connection is closed", "debug");
131154
if (err) {
155+
clearTimeout(clearMe);
132156
connection.error = err;
133157
next(connection);
134158
return;
135159
}
136160

137161
connectionClosedCount += 1;
138162
if (connectionClosedCount === actionTemplate.databases.length) {
163+
clearTimeout(clearMe);
139164
api.log("All connections are closed", "debug");
140165
next(connection);
141166
}

‎package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@
2727
"forums-wrapper": "git://github.com/cloudspokes/forums-wrapper.git#12b57be495c2e10431173522bc9eff60e0575959",
2828
"heapdump": "^0.3.6",
2929
"highlight.js": ">= 8.3.0",
30-
"informix-wrapper": "git://github.com/cloudspokes/informix-wrapper.git#46d1c91c3a8e164f888e88627b8da712e9ceb855",
30+
"informix-wrapper": "git://github.com/cloudspokes/informix-wrapper.git",
3131
"java": "0.3.x",
32-
"jsonwebtoken": "0.4.x",
32+
"jsonwebtoken": "5.0.5",
3333
"ldapjs": "0.7.x",
3434
"mime": "~1.2.11",
3535
"mkdirp": "0.3.x",

0 commit comments

Comments
 (0)
This repository has been archived.