From 8842134252e4a3e4bd497fe5de743d2151dc6bbb Mon Sep 17 00:00:00 2001 From: Vyacheslav V Sokolov Date: Fri, 16 Jun 2017 06:05:09 +0700 Subject: [PATCH 1/4] IMPROVE CHALLENGE VISIBILITY CONTROL (https://www.topcoder.com/challenge-details/30057891/?type=develop) Verification guide: docs/Verification_Guide-Improve Challenge Visibility Control.doc --- actions/challenges.js | 59 +- db_scripts/test_eligibility.delete.sql | 22 + db_scripts/test_eligibility.insert.sql | 133 ++ ...e-Improve Challenge Visibility Control.doc | Bin 0 -> 49664 bytes initializers/middleware.js | 7 +- initializers/v3client.js | 143 ++ package.json | 2 + .../get_challenge_accessibility_and_groups | 21 + ...et_challenge_accessibility_and_groups.json | 5 + ...Visibility_Control.postman_collection.json | 226 ++ ...isibility_Control.postman_environment.json | 34 + test/postman/Reviewer_Management_API.json | 1892 +++++++++-------- test/scripts/mock_v3.js | 73 + 13 files changed, 1726 insertions(+), 891 deletions(-) create mode 100644 db_scripts/test_eligibility.delete.sql create mode 100644 db_scripts/test_eligibility.insert.sql create mode 100644 docs/Verification_Guide-Improve Challenge Visibility Control.doc create mode 100644 initializers/v3client.js create mode 100644 queries/get_challenge_accessibility_and_groups create mode 100644 queries/get_challenge_accessibility_and_groups.json create mode 100644 test/postman/New_Challenge_Visibility_Control.postman_collection.json create mode 100644 test/postman/New_Challenge_Visibility_Control.postman_environment.json create mode 100644 test/scripts/mock_v3.js diff --git a/actions/challenges.js b/actions/challenges.js index 0c40bbf2b..f47bbe7a6 100755 --- a/actions/challenges.js +++ b/actions/challenges.js @@ -1,9 +1,9 @@ /* * Copyright (C) 2013 - 2014 TopCoder Inc., All Rights Reserved. * - * @version 1.31 + * @version 1.32 * @author Sky_, mekanizumu, TCSASSEMBLER, freegod, Ghost_141, kurtrips, xjtufreeman, ecnu_haozi, hesibo, LazyChild, - * @author isv, muzehyun, bugbuka + * @author isv, muzehyun, bugbuka, GFalcon * @changes from 1.0 * merged with Member Registration API * changes in 1.1: @@ -79,9 +79,12 @@ * - Update challenge type filter. * Changes in 1.31: * - Remove screeningScorecardId and reviewScorecardId from search challenges api. + * Changes in 1.32: + * - validateChallenge function now checks if an user belongs to a group via + * user_group_xref for old challenges and by calling V3 API for new ones. */ "use strict"; -/*jslint stupid: true, unparam: true, continue: true */ +/*jslint stupid: true, unparam: true, continue: true, nomen: true */ require('datejs'); var fs = require('fs'); @@ -851,7 +854,7 @@ var addFilter = function (sql, filter, isMyChallenges, helper, caller) { * @since 1.10 */ function validateChallenge(api, connection, dbConnectionMap, challengeId, isStudio, callback) { - var error, sqlParams, helper = api.helper; + var error, sqlParams, helper = api.helper, userId = (connection.caller.userId || 0); async.waterfall([ function (cb) { error = helper.checkPositiveInteger(challengeId, 'challengeId') || @@ -862,31 +865,47 @@ function validateChallenge(api, connection, dbConnectionMap, challengeId, isStud } sqlParams = { challengeId: challengeId, - user_id: connection.caller.userId || 0 + user_id: userId }; - async.parallel({ - accessibility: function (cbx) { - api.dataAccess.executeQuery('check_user_challenge_accessibility', sqlParams, dbConnectionMap, cbx); - }, - exists: function (cbx) { - api.dataAccess.executeQuery('check_challenge_exists', sqlParams, dbConnectionMap, cbx); - } - }, cb); + api.dataAccess.executeQuery('get_challenge_accessibility_and_groups', sqlParams, dbConnectionMap, cb); }, function (res, cb) { - if (res.exists.length === 0 || Boolean(res.exists[0].is_studio) !== isStudio) { + // If the record with this callengeId doesn't exist in contest_eligibility table + // or there's a studio/software mismatch + if (res.length === 0 || Boolean(res[0].is_studio) !== isStudio) { cb(new NotFoundError("Challenge not found.")); return; } - var access = res.accessibility[0]; - if (access.is_private && !access.has_access && connection.caller.accessLevel !== "admin") { - if (connection.caller.accessLevel === "anon") { + // If there's no corresponding record in group_contest_eligibility + // or the user is an admin + if (_.isNull(res[0].challenge_group_ind) || _.isUndefined(res[0].challenge_group_ind) || connection.caller.accessLevel === 'admin') { + cb(); + return; + } + error = false; + async.some(res, function (record, cbx) { + if (record.challenge_group_ind === 0) { + cbx(!(_.isNull(record.user_group_xref_found) || _.isUndefined(record.user_group_xref_found))); + } else { + api.v3client.isUserInGroup(connection, userId, record.group_id, function (err, result) { + if (err) { + error = err; + cbx(true); + } else { + cbx(result); + } + }); + } + }, function (eligible) { + if (error) { + cb(error); + } else if (eligible) { + cb(); + } else if (connection.caller.accessLevel === "anon") { cb(new UnauthorizedError()); } else { cb(new ForbiddenError()); } - return; - } - cb(); + }); } ], callback); } diff --git a/db_scripts/test_eligibility.delete.sql b/db_scripts/test_eligibility.delete.sql new file mode 100644 index 000000000..c6a88def0 --- /dev/null +++ b/db_scripts/test_eligibility.delete.sql @@ -0,0 +1,22 @@ +DATABASE common_oltp; + +DELETE FROM user_group_xref WHERE group_id > 3330000 AND group_id < 3330100; +DELETE FROM security_groups WHERE group_id > 3330000 AND group_id < 3330100; +DELETE FROM group_contest_eligibility WHERE contest_eligibility_id > 1110000 AND contest_eligibility_id < 1110100; +DELETE FROM contest_eligibility WHERE contest_eligibility_id > 1110000 AND contest_eligibility_id < 1110100; + +DATABASE tcs_catalog; + +DELETE FROM review_item_comment WHERE review_item_comment_id > 7770000 AND review_item_id < 7770100; +DELETE FROM review_item WHERE review_item_id > 5550000 AND review_item_id < 5550100; +DELETE FROM review WHERE review_id > 4440000 AND review_id < 4440100; +DELETE FROM scorecard_question WHERE scorecard_question_id = 3330333; +DELETE FROM scorecard_section WHERE scorecard_section_id = 3330333; +DELETE FROM scorecard_group WHERE scorecard_group_id = 3330333; +DELETE FROM scorecard WHERE scorecard_id = 3330333; +DELETE FROM submission WHERE submission_id > 2220000 AND submission_id < 2220100; +DELETE FROM prize WHERE project_id > 2220000 AND project_id < 2220100; +DELETE FROM upload WHERE project_id > 2220000 AND project_id < 2220100; +DELETE FROM resource WHERE project_id > 2220000 AND project_id < 2220100; +DELETE FROM project_phase WHERE project_id > 2220000 AND project_id < 2220100; +DELETE FROM project WHERE project_id > 2220000 AND project_id < 2220100; diff --git a/db_scripts/test_eligibility.insert.sql b/db_scripts/test_eligibility.insert.sql new file mode 100644 index 000000000..05d827c15 --- /dev/null +++ b/db_scripts/test_eligibility.insert.sql @@ -0,0 +1,133 @@ +DATABASE tcs_catalog; + +INSERT INTO project (project_id, project_status_id, project_category_id, create_user, create_date, modify_user, modify_date) + VALUES (2220001, 1, 14, "132456", CURRENT, "132456", CURRENT); +INSERT INTO project (project_id, project_status_id, project_category_id, create_user, create_date, modify_user, modify_date) + VALUES (2220002, 1, 14, "132456", CURRENT, "132456", CURRENT); +INSERT INTO project (project_id, project_status_id, project_category_id, create_user, create_date, modify_user, modify_date) + VALUES (2220003, 1, 14, "132456", CURRENT, "132456", CURRENT); +INSERT INTO project (project_id, project_status_id, project_category_id, create_user, create_date, modify_user, modify_date) + VALUES (2220004, 1, 14, "132456", CURRENT, "132456", CURRENT); +INSERT INTO project (project_id, project_status_id, project_category_id, create_user, create_date, modify_user, modify_date) + VALUES (2220005, 1, 14, "132456", CURRENT, "132456", CURRENT); + +INSERT INTO project_phase (project_phase_id, project_id, phase_type_id, phase_status_id, scheduled_start_time, scheduled_end_time, duration, create_user, create_date, modify_user, modify_date) + VALUES (7770001, 2220001, 17, 3, CURRENT, CURRENT, 0, "132456", CURRENT, "132456", CURRENT); +INSERT INTO project_phase (project_phase_id, project_id, phase_type_id, phase_status_id, scheduled_start_time, scheduled_end_time, duration, create_user, create_date, modify_user, modify_date) + VALUES (7770002, 2220002, 17, 3, CURRENT, CURRENT, 0, "132456", CURRENT, "132456", CURRENT); +INSERT INTO project_phase (project_phase_id, project_id, phase_type_id, phase_status_id, scheduled_start_time, scheduled_end_time, duration, create_user, create_date, modify_user, modify_date) + VALUES (7770003, 2220003, 17, 3, CURRENT, CURRENT, 0, "132456", CURRENT, "132456", CURRENT); +INSERT INTO project_phase (project_phase_id, project_id, phase_type_id, phase_status_id, scheduled_start_time, scheduled_end_time, duration, create_user, create_date, modify_user, modify_date) + VALUES (7770004, 2220004, 17, 3, CURRENT, CURRENT, 0, "132456", CURRENT, "132456", CURRENT); +INSERT INTO project_phase (project_phase_id, project_id, phase_type_id, phase_status_id, scheduled_start_time, scheduled_end_time, duration, create_user, create_date, modify_user, modify_date) + VALUES (7770005, 2220005, 17, 3, CURRENT, CURRENT, 0, "132456", CURRENT, "132456", CURRENT); + +INSERT INTO resource (resource_id, resource_role_id, project_id, project_phase_id, user_id, create_user, create_date, modify_user, modify_date) + VALUES (8880001, 20, 2220001, 7770001, 132456, "132456", CURRENT, "132456", CURRENT); +INSERT INTO resource (resource_id, resource_role_id, project_id, project_phase_id, user_id, create_user, create_date, modify_user, modify_date) + VALUES (8880002, 20, 2220002, 7770002, 132456, "132456", CURRENT, "132456", CURRENT); +INSERT INTO resource (resource_id, resource_role_id, project_id, project_phase_id, user_id, create_user, create_date, modify_user, modify_date) + VALUES (8880003, 20, 2220003, 7770003, 132456, "132456", CURRENT, "132456", CURRENT); +INSERT INTO resource (resource_id, resource_role_id, project_id, project_phase_id, user_id, create_user, create_date, modify_user, modify_date) + VALUES (8880004, 20, 2220004, 7770004, 132456, "132456", CURRENT, "132456", CURRENT); +INSERT INTO resource (resource_id, resource_role_id, project_id, project_phase_id, user_id, create_user, create_date, modify_user, modify_date) + VALUES (8880005, 20, 2220005, 7770005, 132456, "132456", CURRENT, "132456", CURRENT); + +INSERT INTO upload (upload_id, project_id, resource_id, upload_type_id, upload_status_id, parameter, create_user, create_date, modify_user, modify_date) + VALUES (9990001, 2220001, 8880001, 1, 1, "---", "132456", CURRENT, "132456", CURRENT); +INSERT INTO upload (upload_id, project_id, resource_id, upload_type_id, upload_status_id, parameter, create_user, create_date, modify_user, modify_date) + VALUES (9990002, 2220002, 8880002, 1, 1, "---", "132456", CURRENT, "132456", CURRENT); +INSERT INTO upload (upload_id, project_id, resource_id, upload_type_id, upload_status_id, parameter, create_user, create_date, modify_user, modify_date) + VALUES (9990003, 2220003, 8880003, 1, 1, "---", "132456", CURRENT, "132456", CURRENT); +INSERT INTO upload (upload_id, project_id, resource_id, upload_type_id, upload_status_id, parameter, create_user, create_date, modify_user, modify_date) + VALUES (9990004, 2220004, 8880004, 1, 1, "---", "132456", CURRENT, "132456", CURRENT); +INSERT INTO upload (upload_id, project_id, resource_id, upload_type_id, upload_status_id, parameter, create_user, create_date, modify_user, modify_date) + VALUES (9990005, 2220005, 8880005, 1, 1, "---", "132456", CURRENT, "132456", CURRENT); + +INSERT INTO prize (prize_id, project_id, place, prize_amount, prize_type_id, number_of_submissions, create_user, create_date, modify_user, modify_date) + VALUES (1110001, 2220001, 1, 1000, 14, 1, "132456", CURRENT, "132456", CURRENT); +INSERT INTO prize (prize_id, project_id, place, prize_amount, prize_type_id, number_of_submissions, create_user, create_date, modify_user, modify_date) + VALUES (1110002, 2220002, 1, 1000, 14, 1, "132456", CURRENT, "132456", CURRENT); +INSERT INTO prize (prize_id, project_id, place, prize_amount, prize_type_id, number_of_submissions, create_user, create_date, modify_user, modify_date) + VALUES (1110003, 2220003, 1, 1000, 14, 1, "132456", CURRENT, "132456", CURRENT); +INSERT INTO prize (prize_id, project_id, place, prize_amount, prize_type_id, number_of_submissions, create_user, create_date, modify_user, modify_date) + VALUES (1110004, 2220004, 1, 1000, 14, 1, "132456", CURRENT, "132456", CURRENT); +INSERT INTO prize (prize_id, project_id, place, prize_amount, prize_type_id, number_of_submissions, create_user, create_date, modify_user, modify_date) + VALUES (1110005, 2220005, 1, 1000, 14, 1, "132456", CURRENT, "132456", CURRENT); + +INSERT INTO submission (submission_id, upload_id, submission_status_id, submission_type_id, create_user, create_date, modify_user, modify_date, prize_id) + VALUES (2220001, 9990001, 1, 3, "132456", CURRENT, "132456", CURRENT, 1110001); +INSERT INTO submission (submission_id, upload_id, submission_status_id, submission_type_id, create_user, create_date, modify_user, modify_date, prize_id) + VALUES (2220002, 9990002, 1, 3, "132456", CURRENT, "132456", CURRENT, 1110002); +INSERT INTO submission (submission_id, upload_id, submission_status_id, submission_type_id, create_user, create_date, modify_user, modify_date, prize_id) + VALUES (2220003, 9990003, 1, 3, "132456", CURRENT, "132456", CURRENT, 1110003); +INSERT INTO submission (submission_id, upload_id, submission_status_id, submission_type_id, create_user, create_date, modify_user, modify_date, prize_id) + VALUES (2220004, 9990004, 1, 3, "132456", CURRENT, "132456", CURRENT, 1110004); +INSERT INTO submission (submission_id, upload_id, submission_status_id, submission_type_id, create_user, create_date, modify_user, modify_date, prize_id) + VALUES (2220005, 9990005, 1, 3, "132456", CURRENT, "132456", CURRENT, 1110005); + +INSERT INTO scorecard (scorecard_id, scorecard_status_id, scorecard_type_id, project_category_id, name, version, min_score, max_score, create_user, create_date, modify_user, modify_date, version_number) + VALUES (3330333, 1, 7, 14, "---", "---", 0, 100, "132456", CURRENT, "132456", CURRENT, 1); + +INSERT INTO scorecard_group (scorecard_group_id, scorecard_id, name, weight, sort, create_user, create_date, modify_user, modify_date, version) + VALUES (3330333, 3330333, "---", 100, 1, "132456", CURRENT, "132456", CURRENT, 1); + +INSERT INTO scorecard_section (scorecard_section_id, scorecard_group_id, name, weight, sort, create_user, create_date, modify_user, modify_date, version) + VALUES (3330333, 3330333, "---", 100, 1, "132456", CURRENT, "132456", CURRENT, 1); + +INSERT INTO scorecard_question (scorecard_question_id, scorecard_question_type_id, scorecard_section_id, description, weight, sort, upload_document, upload_document_required, create_user, create_date, modify_user, modify_date, version) + VALUES (3330333, 1, 3330333, '---', 100, 1, 0, 0, "132456", CURRENT, "132456", CURRENT, 1); + +INSERT INTO review (review_id, resource_id, submission_id, project_phase_id, scorecard_id, committed, create_user, create_date, modify_user, modify_date) + VALUES (4440001, 8880001, 2220001, 7770001, 3330333, 1, "132456", CURRENT, "132456", CURRENT); +INSERT INTO review (review_id, resource_id, submission_id, project_phase_id, scorecard_id, committed, create_user, create_date, modify_user, modify_date) + VALUES (4440002, 8880002, 2220002, 7770002, 3330333, 1, "132456", CURRENT, "132456", CURRENT); +INSERT INTO review (review_id, resource_id, submission_id, project_phase_id, scorecard_id, committed, create_user, create_date, modify_user, modify_date) + VALUES (4440003, 8880003, 2220003, 7770003, 3330333, 1, "132456", CURRENT, "132456", CURRENT); +INSERT INTO review (review_id, resource_id, submission_id, project_phase_id, scorecard_id, committed, create_user, create_date, modify_user, modify_date) + VALUES (4440004, 8880004, 2220004, 7770004, 3330333, 1, "132456", CURRENT, "132456", CURRENT); +INSERT INTO review (review_id, resource_id, submission_id, project_phase_id, scorecard_id, committed, create_user, create_date, modify_user, modify_date) + VALUES (4440005, 8880005, 2220005, 7770005, 3330333, 1, "132456", CURRENT, "132456", CURRENT); + +INSERT INTO review_item (review_item_id, review_id, scorecard_question_id, upload_id, answer, sort, create_user, create_date, modify_user, modify_date) + VALUES (5550001, 4440001, 3330333, 9990001, "---", 1, "132456", CURRENT, "132456", CURRENT); +INSERT INTO review_item (review_item_id, review_id, scorecard_question_id, upload_id, answer, sort, create_user, create_date, modify_user, modify_date) + VALUES (5550002, 4440002, 3330333, 9990002, "---", 1, "132456", CURRENT, "132456", CURRENT); +INSERT INTO review_item (review_item_id, review_id, scorecard_question_id, upload_id, answer, sort, create_user, create_date, modify_user, modify_date) + VALUES (5550003, 4440003, 3330333, 9990003, "---", 1, "132456", CURRENT, "132456", CURRENT); +INSERT INTO review_item (review_item_id, review_id, scorecard_question_id, upload_id, answer, sort, create_user, create_date, modify_user, modify_date) + VALUES (5550004, 4440004, 3330333, 9990004, "---", 1, "132456", CURRENT, "132456", CURRENT); +INSERT INTO review_item (review_item_id, review_id, scorecard_question_id, upload_id, answer, sort, create_user, create_date, modify_user, modify_date) + VALUES (5550005, 4440005, 3330333, 9990005, "---", 1, "132456", CURRENT, "132456", CURRENT); + + +INSERT INTO review_item_comment (review_item_comment_id, resource_id, review_item_id, comment_type_id, content, sort, create_user, create_date, modify_user, modify_date) + VALUES (7770001, 8880001, 5550001, 1, "The current user has the right to view this challenge", 1, "132456", CURRENT, "132456", CURRENT); +INSERT INTO review_item_comment (review_item_comment_id, resource_id, review_item_id, comment_type_id, content, sort, create_user, create_date, modify_user, modify_date) + VALUES (7770002, 8880002, 5550002, 1, "The current user has the right to view this challenge", 1, "132456", CURRENT, "132456", CURRENT); +INSERT INTO review_item_comment (review_item_comment_id, resource_id, review_item_id, comment_type_id, content, sort, create_user, create_date, modify_user, modify_date) + VALUES (7770003, 8880003, 5550003, 1, "The current user has the right to view this challenge", 1, "132456", CURRENT, "132456", CURRENT); +INSERT INTO review_item_comment (review_item_comment_id, resource_id, review_item_id, comment_type_id, content, sort, create_user, create_date, modify_user, modify_date) + VALUES (7770004, 8880004, 5550004, 1, "The current user has the right to view this challenge", 1, "132456", CURRENT, "132456", CURRENT); +INSERT INTO review_item_comment (review_item_comment_id, resource_id, review_item_id, comment_type_id, content, sort, create_user, create_date, modify_user, modify_date) + VALUES (7770005, 8880005, 5550005, 1, "The current user has the right to view this challenge", 1, "132456", CURRENT, "132456", CURRENT); + +DATABASE common_oltp; + +INSERT INTO contest_eligibility (contest_eligibility_id, contest_id, is_studio) VALUES (1110001, 2220001, 0); +INSERT INTO contest_eligibility (contest_eligibility_id, contest_id, is_studio) VALUES (1110002, 2220002, 0); +INSERT INTO contest_eligibility (contest_eligibility_id, contest_id, is_studio) VALUES (1110003, 2220003, 0); +INSERT INTO contest_eligibility (contest_eligibility_id, contest_id, is_studio) VALUES (1110004, 2220004, 0); +INSERT INTO contest_eligibility (contest_eligibility_id, contest_id, is_studio) VALUES (1110005, 2220005, 0); + +INSERT INTO security_groups (group_id, description, challenge_group_ind) VALUES (3330001, "Eligibility - Old logic - with user", 0); +INSERT INTO security_groups (group_id, description, challenge_group_ind) VALUES (3330002, "Eligibility - Old logic - no users", 0); +INSERT INTO security_groups (group_id, description, challenge_group_ind) VALUES (3330003, "Eligibility - New logic - with user", 1); +INSERT INTO security_groups (group_id, description, challenge_group_ind) VALUES (3330004, "Eligibility - New logic - no users", 1); + +INSERT INTO user_group_xref (user_group_id, login_id, group_id) VALUES (5550001, 132458, 3330001); + +INSERT INTO group_contest_eligibility (contest_eligibility_id, group_id) VALUES (1110002, 3330001); +INSERT INTO group_contest_eligibility (contest_eligibility_id, group_id) VALUES (1110003, 3330002); +INSERT INTO group_contest_eligibility (contest_eligibility_id, group_id) VALUES (1110004, 3330003); +INSERT INTO group_contest_eligibility (contest_eligibility_id, group_id) VALUES (1110005, 3330004); diff --git a/docs/Verification_Guide-Improve Challenge Visibility Control.doc b/docs/Verification_Guide-Improve Challenge Visibility Control.doc new file mode 100644 index 0000000000000000000000000000000000000000..5385983df3f5a6c74c77c93f4fa89de8b359be7d GIT binary patch literal 49664 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 callback - the callback function. + * It will get either an Error object or a response body. + */ +function callService(params, callback) { + params.json = true; + request(params, function (err, response, body) { + if (err) { + callback(err); + return; + } + /*jslint eqeq: true*/ + if (response.statusCode != 200) { + /*jslint eqeq: false*/ + callback(new Error('API V3 returned ' + response.statusCode + ' ' + (response.statusMessage || ''))); + return; + } + callback(null, body); + }); +} + +/** + * Get the V3 API authorization token to use in subsequent calls + * + * @param {Object} connection - the connection object provided by ActionHero + * @param {Function} callback - this function receives either an error, + * a V3 token or nothing at all (if the current connection's user is anonymous) + */ +function getToken(connection, callback) { + // Anonymous + if (_.isUndefined(connection.authToken)) { + callback(); + return; + } + // Cached token + if (!_.isUndefined(tokens[connection.authToken])) { + callback(null, tokens[connection.authToken]); + return; + } + // Get the token by calling the API + callService({ + url: v3url + 'authorizations', + method: 'POST', + body: { + param: { + token: connection.authToken + } + } + }, function (err, body) { + if (err) { + callback(err); + } else { + tokens[connection.authToken] = body.result.content.token; + callback(null, body.result.content.token); + } + }); +} + +/** + * Get IDs of users in the specified group + * + * @param {Object} connection - the connection object provided by ActionHero + * @param {Number} groupId - the group ID + * @param {Function} callback - the callback. Receives either an error + * or the list of group's users an array of numeric IDs + */ +function getGroupMembers(connection, groupId, callback) { + getToken(connection, function (err, token) { + if (err) { + callback(err); + return; + } + callService({ + url: v3url + 'groups/' + groupId + '/members', + method: 'GET', + headers: { + 'Authorization': 'Bearer ' + token + } + }, function (err, body) { + if (err) { + callback(err); + } else { + callback(null, body.result.content.map(function (item) { + return item.memberId; + })); + } + }); + }); +} + +exports.v3client = function (api, next) { + api.v3client = { + /** + * Check if the user belongs to the group + * + * @param {Object} connection - the connection object provided by ActionHero + * @param {Number} userId - the user ID + * @param {Number} groupId - the group ID + * @param {Function} callback - the callback. The second parameter + * is boolean vwhich is true if the user is found in the group. + */ + isUserInGroup: function (connection, userId, groupId, callback) { + getGroupMembers(connection, groupId, function (err, members) { + if (err) { + callback(err); + } else { + callback(null, members.indexOf(userId) >= 0); + } + }); + } + }; + next(); +}; diff --git a/package.json b/package.json index b9daa5614..c3e6dfc2a 100644 --- a/package.json +++ b/package.json @@ -21,9 +21,11 @@ "bcrypt": "0.7.x", "bigdecimal": "0.6.x", "bignum": "0.6.x", + "body-parser": "^1.17.2", "crypto": "0.0.x", "datejs": "0.0.x", "email-templates": "0.1.x", + "express": "^4.15.3", "forums-wrapper": "git://github.com/cloudspokes/forums-wrapper.git#12b57be495c2e10431173522bc9eff60e0575959", "heapdump": "^0.3.6", "highlight.js": ">= 8.3.0", diff --git a/queries/get_challenge_accessibility_and_groups b/queries/get_challenge_accessibility_and_groups new file mode 100644 index 000000000..6ca557db3 --- /dev/null +++ b/queries/get_challenge_accessibility_and_groups @@ -0,0 +1,21 @@ +SELECT + ce.is_studio, + sg.challenge_group_ind, + ugx.group_id AS user_group_xref_found, + sg.group_id AS group_id +FROM + ( + ( + contest_eligibility ce + LEFT JOIN group_contest_eligibility gce + ON ce.contest_eligibility_id = gce.contest_eligibility_id + ) + LEFT JOIN security_groups sg + ON gce.group_id = sg.group_id + ) + LEFT JOIN ( + SELECT group_id FROM user_group_xref WHERE login_id=@user_id@ + ) ugx + ON ugx.group_id = gce.group_id +WHERE ce.contest_id = @challengeId@ + diff --git a/queries/get_challenge_accessibility_and_groups.json b/queries/get_challenge_accessibility_and_groups.json new file mode 100644 index 000000000..218f37428 --- /dev/null +++ b/queries/get_challenge_accessibility_and_groups.json @@ -0,0 +1,5 @@ +{ + "name" : "get_challenge_accessibility_and_groups", + "db" : "tcs_catalog", + "sqlfile" : "get_challenge_accessibility_and_groups" +} \ No newline at end of file diff --git a/test/postman/New_Challenge_Visibility_Control.postman_collection.json b/test/postman/New_Challenge_Visibility_Control.postman_collection.json new file mode 100644 index 000000000..521f5e6a2 --- /dev/null +++ b/test/postman/New_Challenge_Visibility_Control.postman_collection.json @@ -0,0 +1,226 @@ +{ + "id": "ba962be9-0d58-f187-8809-008a39bc2240", + "name": "New Challenge Visibility Control", + "description": "", + "order": [], + "folders": [ + { + "id": "712ffa63-a959-e4a3-6af9-84d4f236b2f3", + "name": "Get checkpoints", + "description": "", + "order": [ + "7c7643c6-89ab-641e-b67a-32b3ac91e09e", + "d830ec36-eb8e-9586-c546-14af77cec152", + "2af8f0d9-f3e8-c58a-ca3d-1130e4b07371", + "f545bbfc-36d7-6567-25a8-b4d6634575e7", + "a3ae5124-2077-4ff2-4e02-afae7670bbe5" + ], + "owner": "316251" + }, + { + "id": "0eeb693c-c6b6-e23b-156d-cff5f21dbb27", + "name": "login", + "description": "", + "order": [ + "6bed8920-6800-0ae0-e63d-b39b05c7f50c", + "fd4cd936-2d4d-a272-f402-d0f7b6cab82f" + ], + "owner": "316251", + "collectionId": "6369974d-65cc-d819-459b-0026549ddb47" + } + ], + "timestamp": 1474156790593, + "owner": "316251", + "public": false, + "requests": [ + { + "id": "2af8f0d9-f3e8-c58a-ca3d-1130e4b07371", + "headers": "Authorization: Bearer {{authToken}}\n", + "headerData": [ + { + "key": "Authorization", + "value": "Bearer {{authToken}}", + "description": "", + "enabled": true + } + ], + "url": "{{url}}/develop/challenges/checkpoint/2220003", + "queryParams": [], + "preRequestScript": null, + "pathVariables": {}, + "pathVariableData": [], + "method": "GET", + "data": null, + "dataMode": "params", + "tests": null, + "currentHelper": "normal", + "helperAttributes": {}, + "time": 1497550652259, + "name": "Old logic, access denied", + "description": "", + "collectionId": "ba962be9-0d58-f187-8809-008a39bc2240", + "responses": [], + "folder": "712ffa63-a959-e4a3-6af9-84d4f236b2f3" + }, + { + "id": "6bed8920-6800-0ae0-e63d-b39b05c7f50c", + "headers": "Content-Type: application/json\n", + "url": "{{url}}/auth", + "preRequestScript": null, + "pathVariables": {}, + "method": "POST", + "data": [], + "dataMode": "raw", + "version": 2, + "tests": "var authResponse = JSON.parse(responseBody);\npostman.setEnvironmentVariable(\"authToken\", authResponse.token);\ntests[\"Status code is 200\"] = responseCode.code === 200;\nvar jsonData = JSON.parse(responseBody);\ntests[\"A valid token is returned\"] = !!jsonData.token;", + "currentHelper": "normal", + "helperAttributes": {}, + "time": 1474159263289, + "name": "Login as admin user", + "description": "", + "collectionId": "ba962be9-0d58-f187-8809-008a39bc2240", + "responses": [], + "rawModeData": "{\n \"username\": \"heffan\", \n \"password\": \"password\"\n}", + "folder": "0eeb693c-c6b6-e23b-156d-cff5f21dbb27" + }, + { + "id": "7c7643c6-89ab-641e-b67a-32b3ac91e09e", + "headers": "Authorization: Bearer {{authToken}}\n", + "headerData": [ + { + "key": "Authorization", + "value": "Bearer {{authToken}}", + "description": "", + "enabled": true + } + ], + "url": "{{url}}/develop/challenges/checkpoint/2220001", + "queryParams": [], + "pathVariables": {}, + "pathVariableData": [], + "preRequestScript": null, + "method": "GET", + "collectionId": "ba962be9-0d58-f187-8809-008a39bc2240", + "data": null, + "dataMode": "params", + "name": "No groups (challenge is not private)", + "description": "", + "descriptionFormat": "html", + "time": 1497550504090, + "version": 2, + "responses": [], + "tests": null, + "currentHelper": "normal", + "helperAttributes": {}, + "folder": "712ffa63-a959-e4a3-6af9-84d4f236b2f3" + }, + { + "id": "a3ae5124-2077-4ff2-4e02-afae7670bbe5", + "headers": "Authorization: Bearer {{authToken}}\n", + "headerData": [ + { + "key": "Authorization", + "value": "Bearer {{authToken}}", + "description": "", + "enabled": true + } + ], + "url": "{{url}}/develop/challenges/checkpoint/2220005", + "queryParams": [], + "preRequestScript": null, + "pathVariables": {}, + "pathVariableData": [], + "method": "GET", + "data": null, + "dataMode": "params", + "tests": null, + "currentHelper": "normal", + "helperAttributes": {}, + "time": 1497550755372, + "name": "New logic, access denied", + "description": "", + "collectionId": "ba962be9-0d58-f187-8809-008a39bc2240", + "responses": [], + "folder": "712ffa63-a959-e4a3-6af9-84d4f236b2f3" + }, + { + "id": "d830ec36-eb8e-9586-c546-14af77cec152", + "headers": "Authorization: Bearer {{authToken}}\n", + "headerData": [ + { + "key": "Authorization", + "value": "Bearer {{authToken}}", + "description": "", + "enabled": true + } + ], + "url": "{{url}}/develop/challenges/checkpoint/2220002", + "queryParams": [], + "preRequestScript": null, + "pathVariables": {}, + "pathVariableData": [], + "method": "GET", + "data": null, + "dataMode": "params", + "tests": null, + "currentHelper": "normal", + "helperAttributes": {}, + "time": 1497550612717, + "name": "Old logic, access allowed", + "description": "", + "collectionId": "ba962be9-0d58-f187-8809-008a39bc2240", + "responses": [], + "folder": "712ffa63-a959-e4a3-6af9-84d4f236b2f3" + }, + { + "id": "f545bbfc-36d7-6567-25a8-b4d6634575e7", + "headers": "Authorization: Bearer {{authToken}}\n", + "headerData": [ + { + "key": "Authorization", + "value": "Bearer {{authToken}}", + "description": "", + "enabled": true + } + ], + "url": "{{url}}/develop/challenges/checkpoint/2220004", + "queryParams": [], + "preRequestScript": null, + "pathVariables": {}, + "pathVariableData": [], + "method": "GET", + "data": null, + "dataMode": "params", + "tests": null, + "currentHelper": "normal", + "helperAttributes": {}, + "time": 1497550705028, + "name": "New logic, access allowed", + "description": "", + "collectionId": "ba962be9-0d58-f187-8809-008a39bc2240", + "responses": [], + "folder": "712ffa63-a959-e4a3-6af9-84d4f236b2f3" + }, + { + "id": "fd4cd936-2d4d-a272-f402-d0f7b6cab82f", + "headers": "Content-Type: application/json\n", + "url": "{{url}}/auth", + "preRequestScript": null, + "pathVariables": {}, + "method": "POST", + "data": [], + "dataMode": "raw", + "version": 2, + "tests": "var authResponse = JSON.parse(responseBody);\npostman.setEnvironmentVariable(\"authToken\", authResponse.token);\ntests[\"Status code is 200\"] = responseCode.code === 200;\nvar jsonData = JSON.parse(responseBody);\ntests[\"A valid token is returned\"] = !!jsonData.token;", + "currentHelper": "normal", + "helperAttributes": {}, + "time": 1474159245944, + "name": "Log in as ordinary user", + "description": "", + "collectionId": "ba962be9-0d58-f187-8809-008a39bc2240", + "responses": [], + "rawModeData": "{\n \"username\": \"user\", \n \"password\": \"password\"\n}", + "folder": "0eeb693c-c6b6-e23b-156d-cff5f21dbb27" + } + ] +} \ No newline at end of file diff --git a/test/postman/New_Challenge_Visibility_Control.postman_environment.json b/test/postman/New_Challenge_Visibility_Control.postman_environment.json new file mode 100644 index 000000000..143271c12 --- /dev/null +++ b/test/postman/New_Challenge_Visibility_Control.postman_environment.json @@ -0,0 +1,34 @@ +{ + "id": "d761e292-418f-09b5-8b27-9d93eae42f1e", + "name": "New Challenge Visibility Control", + "values": [ + { + "enabled": true, + "key": "url", + "value": "http://localhost:8080/api/v2", + "type": "text" + }, + { + "enabled": true, + "key": "adminToken", + "value": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL3NtYS5hdXRoMC5jb20vIiwic3ViIjoiYWR8MTMyNDU2IiwiYXVkIjoiQ01hQnV3U25ZMFZ1NjhQTHJXYXR2dnUzaUlpR1BoN3QiLCJleHAiOjE1MTAxNTkyNjgsImlhdCI6MTQ3NDE1OTI2OH0.KRgW9TxNOEiEu5YdQnXQO1nKFULIuy7JlzDZdq9QFQY", + "type": "text" + }, + { + "enabled": true, + "key": "userToken", + "value": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL3NtYS5hdXRoMC5jb20vIiwic3ViIjoiYWR8MTMyNDU4IiwiYXVkIjoiQ01hQnV3U25ZMFZ1NjhQTHJXYXR2dnUzaUlpR1BoN3QiLCJleHAiOjE1MTAxNzI0MDgsImlhdCI6MTQ3NDE3MjQwOH0.sIG2FoNiCldizzcTMQ9iAFh-PCigNGBAlicxms6uTkk", + "type": "text" + }, + { + "enabled": true, + "key": "authToken", + "value": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL3NtYS5hdXRoMC5jb20vIiwic3ViIjoiYWR8MTMyNDU4IiwiYXVkIjoiQ01hQnV3U25ZMFZ1NjhQTHJXYXR2dnUzaUlpR1BoN3QiLCJleHAiOjE1MTAyODI4MDMsImlhdCI6MTQ3NDI4MjgwM30.s6q_FRFryMslkWCkR0wPSWwTopkZhHH8g9R_4GPf9m4", + "type": "text" + } + ], + "timestamp": 1497565761064, + "_postman_variable_scope": "environment", + "_postman_exported_at": "2017-06-15T22:29:38.942Z", + "_postman_exported_using": "Postman/5.0.1" +} \ No newline at end of file diff --git a/test/postman/Reviewer_Management_API.json b/test/postman/Reviewer_Management_API.json index cd7d0837e..b58200657 100755 --- a/test/postman/Reviewer_Management_API.json +++ b/test/postman/Reviewer_Management_API.json @@ -1,203 +1,214 @@ { - "id": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "id": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "name": "Admin App - TC API Reviewer Management API", "description": "", "order": [], "folders": [ { - "id": "142d5b1b-b304-bced-c1f3-b59e8187d2aa", + "id": "498ee2d2-174c-7049-3cc4-43b4e330083b", + "name": "Get checkpoints", + "description": "", + "order": [ + "8db48405-6ba0-f116-06c6-cc34cffd77c1", + "03badc56-40a6-750a-a0fa-937d6af188b8", + "76441abd-9a70-5fe9-93e1-59dd0318384f", + "60330c29-7ed3-b453-8d01-652084ca19b1", + "46fea4dc-9708-763b-c0cc-713ac9c1a9eb" + ], + "owner": "316251" + }, + { + "id": "305f84dd-24a3-cbe7-97f1-7063b14a5f42", "name": "create admin", "description": "", "order": [ - "17cd6d9b-17b2-1f5c-a0d8-e0948c718d26", - "fc7d7ac4-d1e1-a441-6717-ecb50b9ad7f6", - "9bccd2a2-8aac-1931-b78e-8b61a99415a4", - "8b843cb6-1fc6-8c0b-1d6d-f54d9470cf76", - "88ae8323-4232-1675-8796-e06c6997f3f9", - "2297e0e7-4871-b68e-6258-b59a1da3acd4", - "59d2ab3f-1ef2-3925-42c4-754eced98658", - "43dbe6f5-32e5-f0f0-5735-42a3a9f08120" + "2dc63d17-e288-5432-1e70-ea3b38dbd939", + "13cfe266-39c7-4139-4526-0f45743c1ec1", + "9ddc746e-591c-69e7-2326-a05aa52f7109", + "e498adc6-5df6-ea02-491f-de46950eff67", + "0dc9a5b6-60b7-0006-30f3-a93f6a23efee", + "b762147c-aae5-9630-dfe7-d6468a8a3843", + "e5179ef5-cef4-a08b-9fbf-cd63b4a4066d", + "4b62272c-8167-0310-930a-d5f0526c52a8" ], - "owner": 0, + "owner": "316251", "collectionId": "6369974d-65cc-d819-459b-0026549ddb47" }, { - "id": "8052cbf5-e206-af03-0392-e853f3f06bf4", + "id": "1438537c-a455-8206-0b64-bcb6e98cb447", "name": "create copilot", "description": "", "order": [ - "3a87b2a7-3761-5089-38d9-6c7d3796e984", - "2cb65342-ba7f-b473-6afc-8a729da04563", - "e058d344-3c5d-951a-c86e-ebfeba41bab8", - "42fc7559-c2a2-8b85-67e3-3812ae0d5998", - "518db876-c166-6aa7-d484-b8b778297b4e", - "9fb05ea1-f85e-209e-7619-e40450acd7f3", - "79444594-2c40-1e6e-9f71-f22d57828026", - "26e53a5b-bef9-17f2-fb02-34595bf8a8c4", - "9ff114f0-56ca-f56c-08e4-3bb4dcaac10f", - "6727946e-aa76-0996-e734-800bb07cf5c6", - "49c5d6f4-5b86-3e9f-8c82-ef7430411264", - "858050d9-d3f2-900f-79a8-4a56c7ca586b", - "68d189c2-eb05-ded4-1e97-414ebde03ab8", - "34ac4817-1082-2274-ed98-f17b63e62786", - "477195d0-14ca-6a6e-274f-513e7d50a45c" + "597e4417-c496-e48d-801c-5504e9201d18", + "16572157-2b12-830a-35df-e87fee271e02", + "121ce835-ccff-770b-cf19-d4c8715734ee", + "e3c87489-0dac-48e0-869b-117743e7fb01", + "7667b82b-d891-3959-4469-2b6e3673ed03", + "1a4b8b23-8b80-aaf8-5350-63d6e573ef85", + "6fc730e8-851c-c0c0-4dbf-79a9fc7c67e1", + "4c54c5ab-5d8b-a873-49b0-0f3d63d6b42f", + "497b04d4-c729-3008-107e-b69aead7e3db", + "676c46be-e1bf-ba14-d357-1ca01119054b", + "d7913d8d-6c66-b1cd-62d5-c40393c22661", + "0303a184-79f4-7216-4ecc-797f324d6f3e", + "dcf543f4-41e0-0506-52a1-d9abc07132e2", + "216bd35b-31af-ba0a-497d-9b93576104b7", + "f6e293f3-5650-d73b-36e8-97d587604a4b" ], - "owner": 0, + "owner": "316251", "collectionId": "6369974d-65cc-d819-459b-0026549ddb47" }, { - "id": "7544e9b2-c615-4376-7145-511bb968c906", + "id": "ff6b7b38-7532-5c03-26db-c68f88696eb9", "name": "create reviewer", "description": "", "order": [ - "ebcf31ae-035b-49ac-41d4-fa4484eff6a1", - "b84bd2e1-cd0b-3489-3c11-917a1624249e", - "4a6e3f4b-cb9e-978d-281f-81a57545b0ac", - "ac18e672-1e47-37fa-1ae8-85eed1beab2d", - "202e4545-829b-f158-372f-206e632d609f", - "8679c69e-e94d-7188-60fd-bbe506b851d1", - "2f652b9b-7dc4-8140-9ac5-e6995f1a3fba", - "a8e7c6c2-1cfb-e3ad-af5c-9c27bd71924b", - "d0a6e94f-3c59-2398-f0f5-a1d54a6f4e15", - "03ce940d-9b2d-b46b-0f84-48da5529615c", - "24bc8058-d1ef-1f33-eb64-ede9b9663f49", - "84cd43c0-c407-365b-f1f4-07929e2876cc", - "8a43eff3-3f9a-83a2-6734-a683e29252c8", - "790064a6-e429-1f9c-24b5-7112ce1fb8b2", - "0865091c-8f04-f18c-f9e5-e5c182bc8ab3", - "9e458d5b-5aa5-05ec-6240-7d171c75cf5e", - "0e55b155-b8b7-ae58-5505-f1ff9ba0eb36", - "a466f2b7-2f9c-4a14-fc0e-eee7981cdb42", - "16044f47-5b3d-2ba2-1787-8e6f7e78af97" + "0b12cd19-4eda-4c11-e926-7f8c8920d2ab", + "1b4714ed-d2cb-cd10-98c3-4965448e6b17", + "617c7aa5-6a13-7f08-3621-050d7bb9fb42", + "32fd36b2-7397-5e93-8b6c-755557c77586", + "b557e83b-d42a-a7b8-8a9c-8fa2270188b1", + "39116742-fb19-f8ba-f177-1e1910b0dd50", + "f8efe766-a322-ee21-b4f5-78d78642af19", + "789c4564-2cb5-a4da-04f4-0d3a432950dd", + "38247541-c9f7-206a-f77a-2cdbd47c3968", + "5eee889a-83e0-96da-a476-ffd50ad66960", + "c3dcb7b2-c57c-398e-62d8-170db419f168", + "a407a482-48ea-5561-9158-71259c3e8a3b", + "c42386fb-4880-273c-5f56-514a24108ffc", + "7b7bc600-f9a9-e566-ccd3-4bff678d50da", + "37345c71-a682-1d40-ff87-7739450f0904", + "8b52ad5d-31a4-8a84-4d24-ceb91021a467", + "61f8c960-54fd-f1b3-0cc3-8ac89de6361a", + "0baebd12-e9e9-b75f-5409-4bdd22db26e1", + "12863b80-7674-2de7-7371-1921c77e6ad1" ], - "owner": 0, + "owner": "316251", "collectionId": "6369974d-65cc-d819-459b-0026549ddb47" }, { - "id": "2964b89d-893b-aada-2e0e-c4136b920508", + "id": "43eec092-7864-262f-fe9d-a2a416e1a2d8", "name": "get all admins", "description": "", "order": [ - "b0bfa529-5f58-d5a6-e1bc-2099abfa253f", - "b83cdcb1-5abe-0f73-1c9c-b558c0634baf", - "144d7cd5-cedb-1e15-fec5-27c5e56863df", - "e10c59ae-1669-54bd-03bb-4de19d51fb5e", - "828d7e47-ee45-5ed2-fe37-2114815e84f1" + "6ab91574-6c11-9d54-a6a3-a87304bec08b", + "c21ce35d-8558-ca77-c6af-8a6d930564b9", + "1739bc1d-f48e-2f66-c423-d56a7dd6925f", + "b5f484a7-b5e9-e763-97fb-5d750d08cd6d", + "1c6e9cc9-1d15-c2cb-0b7d-7b552558f26c" ], - "owner": 0, + "owner": "316251", "collectionId": "6369974d-65cc-d819-459b-0026549ddb47" }, { - "id": "1a80812c-dfa2-5dc4-aca7-299502bbc807", + "id": "2c775e97-29a3-c27d-abb5-e5dc6a5e05d9", "name": "get all copilots", "description": "", "order": [ - "67db2b5a-4b85-4e18-2709-5c475849329f", - "2d18170b-9631-3c97-fc68-51d0ed76766c", - "a47c9a54-d12a-6801-02a1-c57c420237cf", - "21bdc1e1-c5b2-d063-fd54-386ab396b224", - "897d4baa-72d5-1eca-ff61-51db0d14408c" + "0554d512-8935-33a8-6447-85eba32b8873", + "2e452537-8224-19aa-e79d-3bdd2d3d6092", + "62a5e348-741b-fd42-ed58-839def26d4bf", + "05f2c4f0-2f80-95ed-54f6-2b731960bdac", + "e1dd94fd-2dea-4082-61f8-a551fcf1d55f" ], - "owner": 0, + "owner": "316251", "collectionId": "6369974d-65cc-d819-459b-0026549ddb47" }, { - "id": "81516934-d74e-f97d-262f-21d87d5961d1", + "id": "790ca3b9-d88f-04e9-b65d-fd59442f3394", "name": "get all reviewers", "description": "", "order": [ - "08364378-8daf-8159-547e-fac22ca27847", - "c28b4a81-8ee7-24ba-fc8b-54b1b3642fab", - "8bd1727c-34f8-ced7-eb92-d50cc6e56772", - "fe0a03f9-4969-651a-5eed-01de9398498e", - "ddf839fa-733a-056a-8a2c-a1e56d0e9072", - "ef7fd1f5-a302-b7b6-a772-a43eb3b82062", - "c0db4362-622a-b556-1991-80df568707b7", - "f784d0d8-8645-7633-91c6-54ec81aa95ff", - "c1d0d1a9-a8b9-8ee7-c6e6-e539a52fbf35" + "f88f1d64-7461-652d-f3fb-6c48fa553e61", + "e61162b5-ccbd-79fc-7daa-ad1e9e71f8db", + "d0457f1e-5957-b83c-f603-aaf45690e622", + "fbdd77d2-d138-3a05-a543-d5302daeca50", + "c15dff6e-1a55-a875-3460-2d2097b2f960", + "4f247a99-8f61-47ea-3323-68ec5a7e7000", + "9308798f-cbfd-b44c-1d47-6ef6650424f0", + "4547a259-b0cf-c5e6-8d04-035b9ae443ce", + "52edc048-18d6-ce4d-5312-69286ce2e2f9" ], - "owner": 0, + "owner": "316251", "collectionId": "6369974d-65cc-d819-459b-0026549ddb47" }, { - "id": "fedff379-68f7-3322-d2e9-29471d82cc60", + "id": "14f4dd06-76e0-ca22-602f-0ad3974aa4fa", "name": "login", "description": "", "order": [ - "f6c44b3f-570d-e48f-3b7e-8419a9ebe9b6", - "a495567b-a450-037f-ca8e-c9da52116890" + "1b96aaf0-f11e-a4c3-4217-c0833e6c75ee", + "f901106d-47f8-080c-d56b-7badc5774481" ], - "owner": 0, + "owner": "316251", "collectionId": "6369974d-65cc-d819-459b-0026549ddb47" }, { - "id": "78aeaf8b-80c8-40df-6ed6-2af5acdbf2ea", + "id": "4ff79efc-3da3-8c10-cbf9-8a883260cc55", "name": "remove admin", "description": "", "order": [ - "d2bf20ce-e0ed-a347-69dc-577e34dbefd0", - "07358622-f7d4-9233-8dc1-204acb7b1ccf", - "3f0e98fb-e97a-e6ed-8dc7-e864b1447e03", - "c8075e84-bb8d-7596-ba92-5990705f93bc", - "b8d3fef6-214c-5032-3002-f6c16f3288e2", - "2f633003-2ac7-99ec-e52a-8b1f2e0534d4", - "600d723c-706d-42ca-9ecc-94a32e280063", - "1e4fffd8-a809-e9dc-0659-0df467954407" + "2c17ef61-6067-4da2-6125-3bf54a8d7526", + "972a47ef-1768-7d9b-f12c-df8c57cb5bf5", + "2f8eda4d-c65c-ba89-a38c-4f197342b382", + "e8a850e5-31bf-6c13-0e44-bc4583bca2cb", + "e766e9a8-dd56-26b0-5fa7-2e7e876001d7", + "35dea5ec-b89c-fe4f-9a74-4ed2637c3501", + "983e7dd1-673c-a1a9-81e9-4e81ff0ec74b", + "eb8f368e-9c8e-47b7-c70d-1cf7ac89c02c" ], - "owner": 0, + "owner": "316251", "collectionId": "6369974d-65cc-d819-459b-0026549ddb47" }, { - "id": "2afb4105-1932-6ef0-866c-43ecb13c0048", + "id": "dcec6b34-9127-b6df-bbd9-da6c35c739f8", "name": "remove copilot", "description": "", "order": [ - "ccc25e86-5365-aaf6-8ce8-9838898142eb", - "85022108-999a-7200-89cd-e6b11f66bcb8", - "357caf52-98e8-90a9-8d13-1bf8d330915e", - "34b27e13-3b96-0a9e-25e6-8a339c517518", - "49952d3d-864a-25ff-3648-abbb79550dc2", - "ad152575-1e23-f242-96d2-f4b49a616c56", - "538a99a4-4701-1ee0-527c-6d2db316dae6", - "19a2adaa-d44b-5fd7-9ee7-a6d3452e4492" + "4063d0fe-dc7b-03fd-1958-219c5d10b788", + "3347ecb1-015e-bd23-20ea-1e5c1bacf1ec", + "c2e943b2-f53d-6788-26e6-ca35b5a5fec7", + "eeabcbce-4ca9-88ce-ec1a-93e0729bad11", + "6a8ef947-840a-bf33-c225-be351341f914", + "ff7618ed-fc54-1b81-6129-8df5ac4e67a9", + "73994f91-2d50-2d6b-f808-5c8b5063d046", + "d0e8a5bc-f7c7-268b-5a66-37e90947dabc" ], - "owner": 0, + "owner": "316251", "collectionId": "6369974d-65cc-d819-459b-0026549ddb47" }, { - "id": "f11d599f-4472-bcef-b9e3-7c86ac139e35", + "id": "f51d9a83-9d4a-fa4d-a3a8-08c9a94a35b5", "name": "remove reviewer", "description": "", "order": [ - "49557532-d98e-55e3-5cc4-4c702b62e3ed", - "3453a16f-6a34-c92c-91ed-d2107b505e7a", - "c3383672-4018-ec1b-2688-515b73987d36", - "636f8c2c-7cc2-4d90-179e-7808ae8bbba1", - "a887c7eb-8b15-90aa-07ef-6d998297bcee", - "e6b6464b-da41-67ee-c2ca-53b1d5ba417d", - "4b8d4933-247c-d204-23c6-3acd8ec2e66a", - "da88d593-5117-3c1f-f56c-47ac74724c79", - "13c71689-cfe5-512d-f5b6-d971fa88129a", - "6fd784f5-bda9-b183-1d85-c30879a47427", - "37b02c2b-7018-6af5-4e3c-57b2abde2b0e", - "05ed43fe-61be-43b3-36c7-0c4a12f98efd", - "12d79b9a-e008-ea3d-6fa4-21c7e72e4e94", - "6fcaeb1e-8611-9adf-319f-92f61ac2d62d" + "a183318a-b246-f372-1b0e-2ff1ad2395c0", + "f9a913ac-f3b4-3cba-ad0d-41265aa5904b", + "5ebd6774-7f4f-df1a-86e7-f81966773ba8", + "5fcaab29-db1b-2b79-e6a0-ee0f19f60f58", + "7d7675c4-0334-9a22-beab-485f817fbbce", + "6116bd27-1dd4-0d0e-938b-26e50c622b75", + "2208a6ea-3cce-8bae-eb41-a7bc31f99e79", + "a6001143-99ca-b1ab-a1c9-58c3dc8b6fe0", + "5cf9ac97-40c2-128f-a531-982ec0dc1247", + "2fde5963-bef1-afc8-52ff-1b494e2dff11", + "30c5af89-92ae-3cb7-92dc-9c29a41d468a", + "d01d666a-59bc-e7e9-2fc1-435a1b4cee89", + "8bb4421e-098b-3ae7-59b7-869927cf659e", + "261b410d-a3bb-054a-de84-03487ed7b549" ], - "owner": 0, + "owner": "316251", "collectionId": "6369974d-65cc-d819-459b-0026549ddb47" } ], "timestamp": 1474156790593, - "owner": 0, + "owner": "316251", "public": false, - "published": false, - "hasRequests": true, "requests": [ { - "id": "03ce940d-9b2d-b46b-0f84-48da5529615c", + "id": "0303a184-79f4-7216-4ecc-797f324d6f3e", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers", + "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, "method": "POST", @@ -206,58 +217,65 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474188017748, - "name": "create reviewer with invalid categoryId", + "time": 1474179176872, + "name": "create copilot with not exist username", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": \"wrong number\"\n}", - "folder": "7544e9b2-c615-4376-7145-511bb968c906" - }, - { - "id": "05ed43fe-61be-43b3-36c7-0c4a12f98efd", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers", + "rawModeData": "{\n \"username\": \"notexist\",\n \"isSoftwareCopilot\": true,\n \"isStudioCopilot\":true\n}", + "folder": "1438537c-a455-8206-0b64-bcb6e98cb447" + }, + { + "id": "03badc56-40a6-750a-a0fa-937d6af188b8", + "headers": "Authorization: Bearer {{authToken}}\n", + "headerData": [ + { + "key": "Authorization", + "value": "Bearer {{authToken}}", + "description": "", + "enabled": true + } + ], + "url": "{{url}}/develop/challenges/checkpoint/2220002", + "queryParams": [], "preRequestScript": null, "pathVariables": {}, - "method": "DELETE", - "data": [], - "dataMode": "raw", + "pathVariableData": [], + "method": "GET", + "data": null, + "dataMode": "params", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474189158880, - "name": "remove reviewer with non-integer categoryId", + "time": 1497550612717, + "name": "Old logic, access allowed", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", - "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 1.1\n}", - "folder": "f11d599f-4472-bcef-b9e3-7c86ac139e35" + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "responses": [] }, { - "id": "07358622-f7d4-9233-8dc1-204acb7b1ccf", - "headers": "Authorization: Bearer {{userToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/admins", + "id": "0554d512-8935-33a8-6447-85eba32b8873", + "headers": "Authorization: Bearer {{adminToken}}\n", + "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, - "method": "DELETE", - "data": [], - "dataMode": "raw", + "method": "GET", + "data": null, + "dataMode": "params", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474173280471, - "name": "remove admin with user token", + "time": 1474176736874, + "name": "get all copilots with admin token", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "78aeaf8b-80c8-40df-6ed6-2af5acdbf2ea" + "folder": "2c775e97-29a3-c27d-abb5-e5dc6a5e05d9" }, { - "id": "08364378-8daf-8159-547e-fac22ca27847", - "headers": "Authorization: Bearer {{adminToken}}\n", - "url": "{{url}}/admin/reviewers?categoryId=7", + "id": "05f2c4f0-2f80-95ed-54f6-2b731960bdac", + "headers": "Authorization: wrong\n", + "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, "method": "GET", @@ -266,15 +284,15 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474268286128, - "name": "get all reviewers with admin token", + "time": 1474176769090, + "name": "get all copilots without Bearer header", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "folder": "81516934-d74e-f97d-262f-21d87d5961d1" + "folder": "2c775e97-29a3-c27d-abb5-e5dc6a5e05d9" }, { - "id": "0865091c-8f04-f18c-f9e5-e5c182bc8ab3", + "id": "0b12cd19-4eda-4c11-e926-7f8c8920d2ab", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", "url": "{{url}}/admin/reviewers", "preRequestScript": null, @@ -285,16 +303,16 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474268192451, - "name": "create reviewer with invalid immune", + "time": 1474187872946, + "name": "create reviewer with admin token", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"Yoshi\",\n \"categoryId\": 14,\n \"immune\": \"invalid boolean\"\n}", - "folder": "7544e9b2-c615-4376-7145-511bb968c906" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", + "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" }, { - "id": "0e55b155-b8b7-ae58-5505-f1ff9ba0eb36", + "id": "0baebd12-e9e9-b75f-5409-4bdd22db26e1", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", "url": "{{url}}/admin/reviewers", "preRequestScript": null, @@ -305,77 +323,78 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474282763352, - "name": "create reviewer with code category id", + "time": 1474282767080, + "name": "create reviewer with f2f category id", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"Hung\",\n \"categoryId\": 39\n}", - "folder": "7544e9b2-c615-4376-7145-511bb968c906" + "rawModeData": "{\n \"username\": \"liquid_user\",\n \"categoryId\": 38\n}", + "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" }, { - "id": "12d79b9a-e008-ea3d-6fa4-21c7e72e4e94", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers", + "id": "0dc9a5b6-60b7-0006-30f3-a93f6a23efee", + "headers": "Authorization: Bearer wrong\nContent-Type: application/json\n", + "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, - "method": "DELETE", + "method": "POST", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474189177783, - "name": "remove reviewer without categoryId", + "time": 1474168987848, + "name": "create admin with wrong Bearer header", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "f11d599f-4472-bcef-b9e3-7c86ac139e35" + "folder": "305f84dd-24a3-cbe7-97f1-7063b14a5f42" }, { - "id": "13c71689-cfe5-512d-f5b6-d971fa88129a", + "id": "121ce835-ccff-770b-cf19-d4c8715734ee", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers", + "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, - "method": "DELETE", + "method": "POST", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474282495801, - "name": "remove reviewer with not exist username", + "time": 1474179507223, + "name": "create copilot with isStudioCopilot false", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"notexist\",\n \"categoryId\": 14\n}", - "folder": "f11d599f-4472-bcef-b9e3-7c86ac139e35" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isSoftwareCopilot\": 1,\n \"isStudioCopilot\":0\n}", + "folder": "1438537c-a455-8206-0b64-bcb6e98cb447" }, { - "id": "144d7cd5-cedb-1e15-fec5-27c5e56863df", - "headers": "", - "url": "{{url}}/admin/admins", + "id": "12863b80-7674-2de7-7371-1921c77e6ad1", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "url": "{{url}}/admin/reviewers?categoryId=14", "preRequestScript": null, "pathVariables": {}, - "method": "GET", - "data": null, - "dataMode": "params", + "method": "POST", + "data": [], + "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474174192935, - "name": "get all admins without Authorization header", + "time": 1474284611393, + "name": "create reviewer with categoryId in query and body at same time", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "folder": "2964b89d-893b-aada-2e0e-c4136b920508" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\":7\n}", + "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" }, { - "id": "16044f47-5b3d-2ba2-1787-8e6f7e78af97", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers?categoryId=14", + "id": "13cfe266-39c7-4139-4526-0f45743c1ec1", + "headers": "Authorization: Bearer {{userToken}}\nContent-Type: application/json\n", + "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, "method": "POST", @@ -384,18 +403,18 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474284611393, - "name": "create reviewer with categoryId in query and body at same time", + "time": 1474172375481, + "name": "create admin with user token", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\":7\n}", - "folder": "7544e9b2-c615-4376-7145-511bb968c906" + "rawModeData": "{\n \"username\": \"dok_tester\"\n}", + "folder": "305f84dd-24a3-cbe7-97f1-7063b14a5f42" }, { - "id": "17cd6d9b-17b2-1f5c-a0d8-e0948c718d26", + "id": "16572157-2b12-830a-35df-e87fee271e02", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/admins", + "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, "method": "POST", @@ -404,78 +423,98 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474168970336, - "name": "create admin with admin token", + "time": 1474179347234, + "name": "create copilot with isSoftwareCopilot false", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "142d5b1b-b304-bced-c1f3-b59e8187d2aa" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isSoftwareCopilot\": 0,\n \"isStudioCopilot\":true\n}", + "folder": "1438537c-a455-8206-0b64-bcb6e98cb447" }, { - "id": "19a2adaa-d44b-5fd7-9ee7-a6d3452e4492", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "id": "1739bc1d-f48e-2f66-c423-d56a7dd6925f", + "headers": "", + "url": "{{url}}/admin/admins", + "preRequestScript": null, + "pathVariables": {}, + "method": "GET", + "data": null, + "dataMode": "params", + "tests": null, + "currentHelper": "normal", + "helperAttributes": {}, + "time": 1474174192935, + "name": "get all admins without Authorization header", + "description": "", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "responses": [], + "folder": "43eec092-7864-262f-fe9d-a2a416e1a2d8" + }, + { + "id": "1a4b8b23-8b80-aaf8-5350-63d6e573ef85", + "headers": "Authorization: wrong\nContent-Type: application/json\n", "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, - "method": "DELETE", + "method": "POST", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474177129491, - "name": "remove copilot with not exist username", + "time": 1474178858906, + "name": "create copilot without Bearer header", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"notexist\"\n}", - "folder": "2afb4105-1932-6ef0-866c-43ecb13c0048" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isSoftwareCopilot\": true,\n \"isStudioCopilot\":true\n}", + "folder": "1438537c-a455-8206-0b64-bcb6e98cb447" }, { - "id": "1e4fffd8-a809-e9dc-0659-0df467954407", + "id": "1b4714ed-d2cb-cd10-98c3-4965448e6b17", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/admins", + "url": "{{url}}/admin/reviewers?categoryId=14", "preRequestScript": null, "pathVariables": {}, - "method": "DELETE", + "method": "POST", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474173533574, - "name": "remove admin with notexist username", + "time": 1474282455411, + "name": "create reviewer with categoryId in query", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"notexist\"\n}", - "folder": "78aeaf8b-80c8-40df-6ed6-2af5acdbf2ea" + "rawModeData": "{\n \"username\": \"dok_tester\"\n}", + "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" }, { - "id": "202e4545-829b-f158-372f-206e632d609f", - "headers": "Authorization: wrong\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers", + "id": "1b96aaf0-f11e-a4c3-4217-c0833e6c75ee", + "headers": "Content-Type: application/json\n", + "url": "{{url}}/auth", "preRequestScript": null, "pathVariables": {}, "method": "POST", "data": [], "dataMode": "raw", - "tests": null, + "version": 2, + "tests": "var authResponse = JSON.parse(responseBody);\npostman.setEnvironmentVariable(\"authToken\", authResponse.token);\ntests[\"Status code is 200\"] = responseCode.code === 200;\nvar jsonData = JSON.parse(responseBody);\ntests[\"A valid token is returned\"] = !!jsonData.token;", "currentHelper": "normal", "helperAttributes": {}, - "time": 1474187893955, - "name": "create reviewer without Bearer header", + "time": 1474159263289, + "name": "Login as admin user", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", - "folder": "7544e9b2-c615-4376-7145-511bb968c906" + "rawModeData": "{\n \"username\": \"heffan\", \n \"password\": \"password\"\n}", + "folder": "14f4dd06-76e0-ca22-602f-0ad3974aa4fa" }, { - "id": "21bdc1e1-c5b2-d063-fd54-386ab396b224", - "headers": "Authorization: wrong\n", - "url": "{{url}}/admin/copilots", + "id": "1c6e9cc9-1d15-c2cb-0b7d-7b552558f26c", + "headers": "Authorization: Bearer wrong\n", + "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, "method": "GET", @@ -484,17 +523,17 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474176769090, - "name": "get all copilots without Bearer header", + "time": 1474174234342, + "name": "get all admins with wrong Bearer header", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "folder": "1a80812c-dfa2-5dc4-aca7-299502bbc807" + "folder": "43eec092-7864-262f-fe9d-a2a416e1a2d8" }, { - "id": "2297e0e7-4871-b68e-6258-b59a1da3acd4", + "id": "216bd35b-31af-ba0a-497d-9b93576104b7", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/admins", + "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, "method": "POST", @@ -503,58 +542,78 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474169000065, - "name": "create admin without username", + "time": 1474179249694, + "name": "create copilot with invalid isStudioCopilot", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{}", - "folder": "142d5b1b-b304-bced-c1f3-b59e8187d2aa" + "rawModeData": "{\n \"username\": \"notexist\",\n \"isStudioCopilot\": \"invalid boolean\",\n \"isSoftwareCopilot\":true\n}", + "folder": "1438537c-a455-8206-0b64-bcb6e98cb447" }, { - "id": "24bc8058-d1ef-1f33-eb64-ede9b9663f49", + "id": "2208a6ea-3cce-8bae-eb41-a7bc31f99e79", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, - "method": "POST", + "method": "DELETE", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474188046380, - "name": "create reviewer with nagative categoryId", + "time": 1474189091821, + "name": "remove reviewer without username", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": -1\n}", - "folder": "7544e9b2-c615-4376-7145-511bb968c906" + "rawModeData": "{}", + "folder": "f51d9a83-9d4a-fa4d-a3a8-08c9a94a35b5" }, { - "id": "26e53a5b-bef9-17f2-fb02-34595bf8a8c4", + "id": "261b410d-a3bb-054a-de84-03487ed7b549", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/copilots", + "url": "{{url}}/admin/reviewers?categoryId=14", "preRequestScript": null, "pathVariables": {}, - "method": "POST", + "method": "DELETE", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474178883094, - "name": "create copilot without username", + "time": 1474284520276, + "name": "remove reviewer with categoryId in query and body at same time", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{}", - "folder": "8052cbf5-e206-af03-0392-e853f3f06bf4" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\":7\n}", + "folder": "f51d9a83-9d4a-fa4d-a3a8-08c9a94a35b5" }, { - "id": "2cb65342-ba7f-b473-6afc-8a729da04563", + "id": "2c17ef61-6067-4da2-6125-3bf54a8d7526", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/copilots", + "url": "{{url}}/admin/admins", + "preRequestScript": null, + "pathVariables": {}, + "method": "DELETE", + "data": [], + "dataMode": "raw", + "tests": null, + "currentHelper": "normal", + "helperAttributes": {}, + "time": 1474173258538, + "name": "remove admin with admin token", + "description": "", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "responses": [], + "rawModeData": "{\n \"username\": \"dok_tester\"\n}", + "folder": "4ff79efc-3da3-8c10-cbf9-8a883260cc55" + }, + { + "id": "2dc63d17-e288-5432-1e70-ea3b38dbd939", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, "method": "POST", @@ -563,16 +622,16 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474179347234, - "name": "create copilot with isSoftwareCopilot false", + "time": 1474168970336, + "name": "create admin with admin token", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isSoftwareCopilot\": 0,\n \"isStudioCopilot\":true\n}", - "folder": "8052cbf5-e206-af03-0392-e853f3f06bf4" + "rawModeData": "{\n \"username\": \"dok_tester\"\n}", + "folder": "305f84dd-24a3-cbe7-97f1-7063b14a5f42" }, { - "id": "2d18170b-9631-3c97-fc68-51d0ed76766c", + "id": "2e452537-8224-19aa-e79d-3bdd2d3d6092", "headers": "Authorization: Bearer {{userToken}}\n", "url": "{{url}}/admin/copilots", "preRequestScript": null, @@ -586,13 +645,13 @@ "time": 1474176739711, "name": "get all copilots with user token", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "folder": "1a80812c-dfa2-5dc4-aca7-299502bbc807" + "folder": "2c775e97-29a3-c27d-abb5-e5dc6a5e05d9" }, { - "id": "2f633003-2ac7-99ec-e52a-8b1f2e0534d4", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "id": "2f8eda4d-c65c-ba89-a38c-4f197342b382", + "headers": "Content-Type: application/json\n", "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, @@ -602,37 +661,37 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474173290943, - "name": "remove admin without username", + "time": 1474173276705, + "name": "remove admin without Authorization header", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{}", - "folder": "78aeaf8b-80c8-40df-6ed6-2af5acdbf2ea" + "rawModeData": "{\n \"username\": \"dok_tester\"\n}", + "folder": "4ff79efc-3da3-8c10-cbf9-8a883260cc55" }, { - "id": "2f652b9b-7dc4-8140-9ac5-e6995f1a3fba", + "id": "2fde5963-bef1-afc8-52ff-1b494e2dff11", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, - "method": "POST", + "method": "DELETE", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474187901930, - "name": "create reviewer without username", + "time": 1474189135829, + "name": "remove reviewer with invalid categoryId", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{}", - "folder": "7544e9b2-c615-4376-7145-511bb968c906" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": \"wrong number\"\n}", + "folder": "f51d9a83-9d4a-fa4d-a3a8-08c9a94a35b5" }, { - "id": "3453a16f-6a34-c92c-91ed-d2107b505e7a", - "headers": "Authorization: Bearer {{userToken}}\nContent-Type: application/json\n", + "id": "30c5af89-92ae-3cb7-92dc-9c29a41d468a", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, @@ -642,18 +701,18 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474189053598, - "name": "remove reviewer with user token", + "time": 1474189145913, + "name": "remove reviewer with negative categoryId", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", - "folder": "f11d599f-4472-bcef-b9e3-7c86ac139e35" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": -1\n}", + "folder": "f51d9a83-9d4a-fa4d-a3a8-08c9a94a35b5" }, { - "id": "34ac4817-1082-2274-ed98-f17b63e62786", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/copilots", + "id": "32fd36b2-7397-5e93-8b6c-755557c77586", + "headers": "Content-Type: application/json\n", + "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, "method": "POST", @@ -662,17 +721,17 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474179249694, - "name": "create copilot with invalid isStudioCopilot", + "time": 1474187888883, + "name": "create reviewer without Authorization header", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"notexist\",\n \"isStudioCopilot\": \"invalid boolean\",\n \"isSoftwareCopilot\":true\n}", - "folder": "8052cbf5-e206-af03-0392-e853f3f06bf4" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", + "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" }, { - "id": "34b27e13-3b96-0a9e-25e6-8a339c517518", - "headers": "Authorization: wrong\nContent-Type: application/json\n", + "id": "3347ecb1-015e-bd23-20ea-1e5c1bacf1ec", + "headers": "Authorization: Bearer {{userToken}}\nContent-Type: application/json\n", "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, @@ -682,18 +741,18 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474177113168, - "name": "remove copilot without Bearer header", + "time": 1474177106806, + "name": "remove copilot with user token", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "2afb4105-1932-6ef0-866c-43ecb13c0048" + "folder": "dcec6b34-9127-b6df-bbd9-da6c35c739f8" }, { - "id": "357caf52-98e8-90a9-8d13-1bf8d330915e", - "headers": "Content-Type: application/json\n", - "url": "{{url}}/admin/copilots", + "id": "35dea5ec-b89c-fe4f-9a74-4ed2637c3501", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, "method": "DELETE", @@ -702,38 +761,38 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474177110084, - "name": "remove copilot without Authorization header", + "time": 1474173290943, + "name": "remove admin without username", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "2afb4105-1932-6ef0-866c-43ecb13c0048" + "rawModeData": "{}", + "folder": "4ff79efc-3da3-8c10-cbf9-8a883260cc55" }, { - "id": "37b02c2b-7018-6af5-4e3c-57b2abde2b0e", + "id": "37345c71-a682-1d40-ff87-7739450f0904", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, - "method": "DELETE", + "method": "POST", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474189145913, - "name": "remove reviewer with negative categoryId", + "time": 1474268192451, + "name": "create reviewer with invalid immune", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": -1\n}", - "folder": "f11d599f-4472-bcef-b9e3-7c86ac139e35" + "rawModeData": "{\n \"username\": \"Yoshi\",\n \"categoryId\": 14,\n \"immune\": \"invalid boolean\"\n}", + "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" }, { - "id": "3a87b2a7-3761-5089-38d9-6c7d3796e984", + "id": "38247541-c9f7-206a-f77a-2cdbd47c3968", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/copilots", + "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, "method": "POST", @@ -742,136 +801,143 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474272371352, - "name": "create copilot with admin token", + "time": 1474282659872, + "name": "create reviewer with not exist username", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isSoftwareCopilot\": true,\n \"isStudioCopilot\":true\n}", - "folder": "8052cbf5-e206-af03-0392-e853f3f06bf4" + "rawModeData": "{\n \"username\": \"notexist\",\n \"categoryId\": 14\n}", + "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" }, { - "id": "3f0e98fb-e97a-e6ed-8dc7-e864b1447e03", - "headers": "Content-Type: application/json\n", - "url": "{{url}}/admin/admins", + "id": "39116742-fb19-f8ba-f177-1e1910b0dd50", + "headers": "Authorization: Bearer wrong\nContent-Type: application/json\n", + "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, - "method": "DELETE", + "method": "POST", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474173276705, - "name": "remove admin without Authorization header", + "time": 1474187897602, + "name": "create reviewer with wrong Bearer header", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "78aeaf8b-80c8-40df-6ed6-2af5acdbf2ea" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", + "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" }, { - "id": "42fc7559-c2a2-8b85-67e3-3812ae0d5998", - "headers": "Authorization: Bearer {{userToken}}\nContent-Type: application/json\n", + "id": "4063d0fe-dc7b-03fd-1958-219c5d10b788", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, - "method": "POST", + "method": "DELETE", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474177780363, - "name": "create copilot with user token", + "time": 1474177185914, + "name": "remove copilot with admin token", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isSoftwareCopilot\": true,\n \"isStudioCopilot\":true\n}", - "folder": "8052cbf5-e206-af03-0392-e853f3f06bf4" + "rawModeData": "{\n \"username\": \"dok_tester\"\n}", + "folder": "dcec6b34-9127-b6df-bbd9-da6c35c739f8" }, { - "id": "43dbe6f5-32e5-f0f0-5735-42a3a9f08120", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/admins", + "id": "4547a259-b0cf-c5e6-8d04-035b9ae443ce", + "headers": "Authorization: Bearer {{adminToken}}\n", + "url": "{{url}}/admin/reviewers?categoryId=1.1", "preRequestScript": null, "pathVariables": {}, - "method": "POST", - "data": [], - "dataMode": "raw", + "method": "GET", + "data": null, + "dataMode": "params", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474173399023, - "name": "create admin with not exist username", + "time": 1474188155542, + "name": "get all reviewers with non-integer categoryId", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"notexist\"\n}", - "folder": "142d5b1b-b304-bced-c1f3-b59e8187d2aa" + "folder": "790ca3b9-d88f-04e9-b65d-fd59442f3394" }, { - "id": "477195d0-14ca-6a6e-274f-513e7d50a45c", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/copilots", + "id": "46fea4dc-9708-763b-c0cc-713ac9c1a9eb", + "headers": "Authorization: Bearer {{authToken}}\n", + "headerData": [ + { + "key": "Authorization", + "value": "Bearer {{authToken}}", + "description": "", + "enabled": true + } + ], + "url": "{{url}}/develop/challenges/checkpoint/2220005", + "queryParams": [], "preRequestScript": null, "pathVariables": {}, - "method": "POST", - "data": [], - "dataMode": "raw", + "pathVariableData": [], + "method": "GET", + "data": null, + "dataMode": "params", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474179290066, - "name": "create copilot with isStudioCopilot/isSoftwareCopilot false", + "time": 1497550755372, + "name": "New logic, access denied", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", - "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isStudioCopilot\": false,\n \"isSoftwareCopilot\":false\n}", - "folder": "8052cbf5-e206-af03-0392-e853f3f06bf4" + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "responses": [] }, { - "id": "49557532-d98e-55e3-5cc4-4c702b62e3ed", + "id": "497b04d4-c729-3008-107e-b69aead7e3db", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers", + "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, - "method": "DELETE", + "method": "POST", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474266891365, - "name": "remove reviewer with admin token", + "time": 1474189226479, + "name": "create copilot without isSoftwareCopilot", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", - "folder": "f11d599f-4472-bcef-b9e3-7c86ac139e35" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isStudioCopilot\":true\n}", + "folder": "1438537c-a455-8206-0b64-bcb6e98cb447" }, { - "id": "49952d3d-864a-25ff-3648-abbb79550dc2", - "headers": "Authorization: Bearer wrong\nContent-Type: application/json\n", - "url": "{{url}}/admin/copilots", + "id": "4b62272c-8167-0310-930a-d5f0526c52a8", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, - "method": "DELETE", + "method": "POST", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474177116518, - "name": "remove copilot with wrong Bearer header", + "time": 1474173399023, + "name": "create admin with not exist username", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "2afb4105-1932-6ef0-866c-43ecb13c0048" + "rawModeData": "{\n \"username\": \"notexist\"\n}", + "folder": "305f84dd-24a3-cbe7-97f1-7063b14a5f42" }, { - "id": "49c5d6f4-5b86-3e9f-8c82-ef7430411264", + "id": "4c54c5ab-5d8b-a873-49b0-0f3d63d6b42f", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", "url": "{{url}}/admin/copilots", "preRequestScript": null, @@ -882,57 +948,55 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474179169639, - "name": "create copilot with empty username", + "time": 1474178883094, + "name": "create copilot without username", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \" \",\n \"isSoftwareCopilot\": true,\n \"isStudioCopilot\":true\n}", - "folder": "8052cbf5-e206-af03-0392-e853f3f06bf4" + "rawModeData": "{}", + "folder": "1438537c-a455-8206-0b64-bcb6e98cb447" }, { - "id": "4a6e3f4b-cb9e-978d-281f-81a57545b0ac", - "headers": "Authorization: Bearer {{userToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers", + "id": "4f247a99-8f61-47ea-3323-68ec5a7e7000", + "headers": "Authorization: Bearer {{adminToken}}\n", + "url": "{{url}}/admin/reviewers?categoryId=wrong", "preRequestScript": null, "pathVariables": {}, - "method": "POST", - "data": [], - "dataMode": "raw", + "method": "GET", + "data": null, + "dataMode": "params", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474187884890, - "name": "create reviewer with user token", + "time": 1474184004438, + "name": "get all reviewers with invalid categoryId", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", - "folder": "7544e9b2-c615-4376-7145-511bb968c906" + "folder": "790ca3b9-d88f-04e9-b65d-fd59442f3394" }, { - "id": "4b8d4933-247c-d204-23c6-3acd8ec2e66a", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "id": "52edc048-18d6-ce4d-5312-69286ce2e2f9", + "headers": "Authorization: Bearer {{adminToken}}\n", "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, - "method": "DELETE", - "data": [], - "dataMode": "raw", + "method": "GET", + "data": null, + "dataMode": "params", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474189091821, - "name": "remove reviewer without username", + "time": 1474189283486, + "name": "get all reviewers without categoryId", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{}", - "folder": "f11d599f-4472-bcef-b9e3-7c86ac139e35" + "folder": "790ca3b9-d88f-04e9-b65d-fd59442f3394" }, { - "id": "518db876-c166-6aa7-d484-b8b778297b4e", - "headers": "Content-Type: application/json\n", + "id": "597e4417-c496-e48d-801c-5504e9201d18", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, @@ -942,18 +1006,18 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474178853689, - "name": "create copilot without Authorization header", + "time": 1474272371352, + "name": "create copilot with admin token", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isSoftwareCopilot\": true,\n \"isStudioCopilot\":true\n}", - "folder": "8052cbf5-e206-af03-0392-e853f3f06bf4" + "folder": "1438537c-a455-8206-0b64-bcb6e98cb447" }, { - "id": "538a99a4-4701-1ee0-527c-6d2db316dae6", + "id": "5cf9ac97-40c2-128f-a531-982ec0dc1247", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/copilots", + "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, "method": "DELETE", @@ -962,56 +1026,56 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474177126290, - "name": "remove copilot with empty username", + "time": 1474282495801, + "name": "remove reviewer with not exist username", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \" \"\n}", - "folder": "2afb4105-1932-6ef0-866c-43ecb13c0048" + "rawModeData": "{\n \"username\": \"notexist\",\n \"categoryId\": 14\n}", + "folder": "f51d9a83-9d4a-fa4d-a3a8-08c9a94a35b5" }, { - "id": "59d2ab3f-1ef2-3925-42c4-754eced98658", + "id": "5ebd6774-7f4f-df1a-86e7-f81966773ba8", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/admins", + "url": "{{url}}/admin/reviewers?categoryId=14", "preRequestScript": null, "pathVariables": {}, - "method": "POST", + "method": "DELETE", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474169674465, - "name": "create admin with empty username", + "time": 1474273020582, + "name": "remove reviewer with categoryId in query", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \" \"\n}", - "folder": "142d5b1b-b304-bced-c1f3-b59e8187d2aa" + "rawModeData": "{\n \"username\": \"dok_tester\"\n}", + "folder": "f51d9a83-9d4a-fa4d-a3a8-08c9a94a35b5" }, { - "id": "600d723c-706d-42ca-9ecc-94a32e280063", + "id": "5eee889a-83e0-96da-a476-ffd50ad66960", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/admins", + "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, - "method": "DELETE", + "method": "POST", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474173326368, - "name": "remove admin without empty username", + "time": 1474188017748, + "name": "create reviewer with invalid categoryId", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \" \"\n}", - "folder": "78aeaf8b-80c8-40df-6ed6-2af5acdbf2ea" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": \"wrong number\"\n}", + "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" }, { - "id": "636f8c2c-7cc2-4d90-179e-7808ae8bbba1", + "id": "5fcaab29-db1b-2b79-e6a0-ee0f19f60f58", "headers": "Content-Type: application/json\n", "url": "{{url}}/admin/reviewers", "preRequestScript": null, @@ -1025,54 +1089,63 @@ "time": 1474189062608, "name": "remove reviewer without Authorization header", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", - "folder": "f11d599f-4472-bcef-b9e3-7c86ac139e35" - }, - { - "id": "6727946e-aa76-0996-e734-800bb07cf5c6", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/copilots", + "folder": "f51d9a83-9d4a-fa4d-a3a8-08c9a94a35b5" + }, + { + "id": "60330c29-7ed3-b453-8d01-652084ca19b1", + "headers": "Authorization: Bearer {{authToken}}\n", + "headerData": [ + { + "key": "Authorization", + "value": "Bearer {{authToken}}", + "description": "", + "enabled": true + } + ], + "url": "{{url}}/develop/challenges/checkpoint/2220004", + "queryParams": [], "preRequestScript": null, "pathVariables": {}, - "method": "POST", - "data": [], - "dataMode": "raw", + "pathVariableData": [], + "method": "GET", + "data": null, + "dataMode": "params", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474189246551, - "name": "create copilot without isStudioCopilot", + "time": 1497550705028, + "name": "New logic, access allowed", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", - "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isSoftwareCopilot\": true\n}", - "folder": "8052cbf5-e206-af03-0392-e853f3f06bf4" + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "responses": [] }, { - "id": "67db2b5a-4b85-4e18-2709-5c475849329f", - "headers": "Authorization: Bearer {{adminToken}}\n", - "url": "{{url}}/admin/copilots", + "id": "6116bd27-1dd4-0d0e-938b-26e50c622b75", + "headers": "Authorization: Bearer wrong\nContent-Type: application/json\n", + "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, - "method": "GET", - "data": null, - "dataMode": "params", + "method": "DELETE", + "data": [], + "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474176736874, - "name": "get all copilots with admin token", + "time": 1474189083334, + "name": "remove reviewer with wrong Bearer header", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "folder": "1a80812c-dfa2-5dc4-aca7-299502bbc807" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", + "folder": "f51d9a83-9d4a-fa4d-a3a8-08c9a94a35b5" }, { - "id": "68d189c2-eb05-ded4-1e97-414ebde03ab8", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/copilots", + "id": "617c7aa5-6a13-7f08-3621-050d7bb9fb42", + "headers": "Authorization: Bearer {{userToken}}\nContent-Type: application/json\n", + "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, "method": "POST", @@ -1081,58 +1154,57 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474179220315, - "name": "create copilot with invalid isSoftwareCopilot", + "time": 1474187884890, + "name": "create reviewer with user token", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"notexist\",\n \"isSoftwareCopilot\": \"invalid boolean\",\n \"isStudioCopilot\":true\n}", - "folder": "8052cbf5-e206-af03-0392-e853f3f06bf4" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", + "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" }, { - "id": "6fcaeb1e-8611-9adf-319f-92f61ac2d62d", + "id": "61f8c960-54fd-f1b3-0cc3-8ac89de6361a", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers?categoryId=14", + "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, - "method": "DELETE", + "method": "POST", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474284520276, - "name": "remove reviewer with categoryId in query and body at same time", + "time": 1474282763352, + "name": "create reviewer with code category id", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\":7\n}", - "folder": "f11d599f-4472-bcef-b9e3-7c86ac139e35" + "rawModeData": "{\n \"username\": \"Hung\",\n \"categoryId\": 39\n}", + "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" }, { - "id": "6fd784f5-bda9-b183-1d85-c30879a47427", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers", + "id": "62a5e348-741b-fd42-ed58-839def26d4bf", + "headers": "", + "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, - "method": "DELETE", - "data": [], - "dataMode": "raw", + "method": "GET", + "data": null, + "dataMode": "params", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474189135829, - "name": "remove reviewer with invalid categoryId", + "time": 1474176772030, + "name": "get all copilots without Authorization header", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": \"wrong number\"\n}", - "folder": "f11d599f-4472-bcef-b9e3-7c86ac139e35" + "folder": "2c775e97-29a3-c27d-abb5-e5dc6a5e05d9" }, { - "id": "790064a6-e429-1f9c-24b5-7112ce1fb8b2", + "id": "676c46be-e1bf-ba14-d357-1ca01119054b", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers", + "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, "method": "POST", @@ -1141,37 +1213,37 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474283473763, - "name": "create reviewer with immune", + "time": 1474189246551, + "name": "create copilot without isStudioCopilot", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"Yoshi\",\n \"categoryId\": 14,\n \"immune\":1\n}", - "folder": "7544e9b2-c615-4376-7145-511bb968c906" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isSoftwareCopilot\": true\n}", + "folder": "1438537c-a455-8206-0b64-bcb6e98cb447" }, { - "id": "79444594-2c40-1e6e-9f71-f22d57828026", + "id": "6a8ef947-840a-bf33-c225-be351341f914", "headers": "Authorization: Bearer wrong\nContent-Type: application/json\n", "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, - "method": "POST", + "method": "DELETE", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474178865110, - "name": "create copilot with wrong Bearer header", + "time": 1474177116518, + "name": "remove copilot with wrong Bearer header", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isSoftwareCopilot\": true,\n \"isStudioCopilot\":true\n}", - "folder": "8052cbf5-e206-af03-0392-e853f3f06bf4" + "rawModeData": "{\n \"username\": \"dok_tester\"\n}", + "folder": "dcec6b34-9127-b6df-bbd9-da6c35c739f8" }, { - "id": "828d7e47-ee45-5ed2-fe37-2114815e84f1", - "headers": "Authorization: Bearer wrong\n", + "id": "6ab91574-6c11-9d54-a6a3-a87304bec08b", + "headers": "Authorization: Bearer {{adminToken}}\n", "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, @@ -1181,17 +1253,17 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474174234342, - "name": "get all admins with wrong Bearer header", + "time": 1474173887249, + "name": "get all admins with admin token", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "folder": "2964b89d-893b-aada-2e0e-c4136b920508" + "folder": "43eec092-7864-262f-fe9d-a2a416e1a2d8" }, { - "id": "84cd43c0-c407-365b-f1f4-07929e2876cc", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers", + "id": "6fc730e8-851c-c0c0-4dbf-79a9fc7c67e1", + "headers": "Authorization: Bearer wrong\nContent-Type: application/json\n", + "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, "method": "POST", @@ -1200,17 +1272,17 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474188081763, - "name": "create reviewer with non-integer categoryId", + "time": 1474178865110, + "name": "create copilot with wrong Bearer header", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 1.1\n}", - "folder": "7544e9b2-c615-4376-7145-511bb968c906" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isSoftwareCopilot\": true,\n \"isStudioCopilot\":true\n}", + "folder": "1438537c-a455-8206-0b64-bcb6e98cb447" }, { - "id": "85022108-999a-7200-89cd-e6b11f66bcb8", - "headers": "Authorization: Bearer {{userToken}}\nContent-Type: application/json\n", + "id": "73994f91-2d50-2d6b-f808-5c8b5063d046", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, @@ -1220,17 +1292,45 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474177106806, - "name": "remove copilot with user token", + "time": 1474177126290, + "name": "remove copilot with empty username", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "2afb4105-1932-6ef0-866c-43ecb13c0048" + "rawModeData": "{\n \"username\": \" \"\n}", + "folder": "dcec6b34-9127-b6df-bbd9-da6c35c739f8" + }, + { + "id": "76441abd-9a70-5fe9-93e1-59dd0318384f", + "headers": "Authorization: Bearer {{authToken}}\n", + "headerData": [ + { + "key": "Authorization", + "value": "Bearer {{authToken}}", + "description": "", + "enabled": true + } + ], + "url": "{{url}}/develop/challenges/checkpoint/2220003", + "queryParams": [], + "preRequestScript": null, + "pathVariables": {}, + "pathVariableData": [], + "method": "GET", + "data": null, + "dataMode": "params", + "tests": null, + "currentHelper": "normal", + "helperAttributes": {}, + "time": 1497550652259, + "name": "Old logic, access denied", + "description": "", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "responses": [] }, { - "id": "858050d9-d3f2-900f-79a8-4a56c7ca586b", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "id": "7667b82b-d891-3959-4469-2b6e3673ed03", + "headers": "Content-Type: application/json\n", "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, @@ -1240,17 +1340,17 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474179176872, - "name": "create copilot with not exist username", + "time": 1474178853689, + "name": "create copilot without Authorization header", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"notexist\",\n \"isSoftwareCopilot\": true,\n \"isStudioCopilot\":true\n}", - "folder": "8052cbf5-e206-af03-0392-e853f3f06bf4" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isSoftwareCopilot\": true,\n \"isStudioCopilot\":true\n}", + "folder": "1438537c-a455-8206-0b64-bcb6e98cb447" }, { - "id": "8679c69e-e94d-7188-60fd-bbe506b851d1", - "headers": "Authorization: Bearer wrong\nContent-Type: application/json\n", + "id": "789c4564-2cb5-a4da-04f4-0d3a432950dd", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, @@ -1260,18 +1360,18 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474187897602, - "name": "create reviewer with wrong Bearer header", + "time": 1474282655617, + "name": "create reviewer with empty username", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", - "folder": "7544e9b2-c615-4376-7145-511bb968c906" + "rawModeData": "{\n \"username\": \" \",\n \"categoryId\": 14\n}", + "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" }, { - "id": "88ae8323-4232-1675-8796-e06c6997f3f9", - "headers": "Authorization: Bearer wrong\nContent-Type: application/json\n", - "url": "{{url}}/admin/admins", + "id": "7b7bc600-f9a9-e566-ccd3-4bff678d50da", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, "method": "POST", @@ -1280,35 +1380,36 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474168987848, - "name": "create admin with wrong Bearer header", + "time": 1474283473763, + "name": "create reviewer with immune", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "142d5b1b-b304-bced-c1f3-b59e8187d2aa" + "rawModeData": "{\n \"username\": \"Yoshi\",\n \"categoryId\": 14,\n \"immune\":1\n}", + "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" }, { - "id": "897d4baa-72d5-1eca-ff61-51db0d14408c", - "headers": "Authorization: Bearer wrong\n", - "url": "{{url}}/admin/copilots", + "id": "7d7675c4-0334-9a22-beab-485f817fbbce", + "headers": "Authorization: wrong\nContent-Type: application/json\n", + "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, - "method": "GET", - "data": null, - "dataMode": "params", + "method": "DELETE", + "data": [], + "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474176766163, - "name": "get all copilots with wrong Bearer header", + "time": 1474189071606, + "name": "remove reviewer without Bearer header", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "folder": "1a80812c-dfa2-5dc4-aca7-299502bbc807" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", + "folder": "f51d9a83-9d4a-fa4d-a3a8-08c9a94a35b5" }, { - "id": "8a43eff3-3f9a-83a2-6734-a683e29252c8", + "id": "8b52ad5d-31a4-8a84-4d24-ceb91021a467", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", "url": "{{url}}/admin/reviewers", "preRequestScript": null, @@ -1319,38 +1420,69 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474189200056, - "name": "create reviewer without categoryId", + "time": 1474282760160, + "name": "create reviewer with studio type", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "7544e9b2-c615-4376-7145-511bb968c906" + "rawModeData": "{\n \"username\": \"cartajs\",\n \"categoryId\": 17\n}", + "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" }, { - "id": "8b843cb6-1fc6-8c0b-1d6d-f54d9470cf76", - "headers": "Authorization: wrong\nContent-Type: application/json\n", - "url": "{{url}}/admin/admins", + "id": "8bb4421e-098b-3ae7-59b7-869927cf659e", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, - "method": "POST", + "method": "DELETE", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474168982704, - "name": "create admin without Bearer header", + "time": 1474189177783, + "name": "remove reviewer without categoryId", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "142d5b1b-b304-bced-c1f3-b59e8187d2aa" + "folder": "f51d9a83-9d4a-fa4d-a3a8-08c9a94a35b5" + }, + { + "id": "8db48405-6ba0-f116-06c6-cc34cffd77c1", + "headers": "Authorization: Bearer {{authToken}}\n", + "headerData": [ + { + "key": "Authorization", + "value": "Bearer {{authToken}}", + "description": "", + "enabled": true + } + ], + "url": "{{url}}/develop/challenges/checkpoint/2220001", + "queryParams": [], + "pathVariables": {}, + "pathVariableData": [], + "preRequestScript": null, + "method": "GET", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "data": null, + "dataMode": "params", + "name": "No groups (challenge is not private)", + "description": "", + "descriptionFormat": "html", + "time": 1497550504090, + "version": 2, + "responses": [], + "tests": null, + "currentHelper": "normal", + "helperAttributes": {}, + "folder": "498ee2d2-174c-7049-3cc4-43b4e330083b" }, { - "id": "8bd1727c-34f8-ced7-eb92-d50cc6e56772", - "headers": "", - "url": "{{url}}/admin/reviewers?categoryId=7", + "id": "9308798f-cbfd-b44c-1d47-6ef6650424f0", + "headers": "Authorization: Bearer {{adminToken}}\n", + "url": "{{url}}/admin/reviewers?categoryId=-4", "preRequestScript": null, "pathVariables": {}, "method": "GET", @@ -1359,57 +1491,57 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474282217351, - "name": "get all reviewers without Authorization header", + "time": 1474184022183, + "name": "get all reviewers with negative categoryId", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "folder": "81516934-d74e-f97d-262f-21d87d5961d1" + "folder": "790ca3b9-d88f-04e9-b65d-fd59442f3394" }, { - "id": "9bccd2a2-8aac-1931-b78e-8b61a99415a4", - "headers": "Content-Type: application/json\n", + "id": "972a47ef-1768-7d9b-f12c-df8c57cb5bf5", + "headers": "Authorization: Bearer {{userToken}}\nContent-Type: application/json\n", "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, - "method": "POST", + "method": "DELETE", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474168977872, - "name": "create admin without Authorization header", + "time": 1474173280471, + "name": "remove admin with user token", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "142d5b1b-b304-bced-c1f3-b59e8187d2aa" + "folder": "4ff79efc-3da3-8c10-cbf9-8a883260cc55" }, { - "id": "9e458d5b-5aa5-05ec-6240-7d171c75cf5e", + "id": "983e7dd1-673c-a1a9-81e9-4e81ff0ec74b", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers", + "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, - "method": "POST", + "method": "DELETE", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474282760160, - "name": "create reviewer with studio type", + "time": 1474173326368, + "name": "remove admin without empty username", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"cartajs\",\n \"categoryId\": 17\n}", - "folder": "7544e9b2-c615-4376-7145-511bb968c906" + "rawModeData": "{\n \"username\": \" \"\n}", + "folder": "4ff79efc-3da3-8c10-cbf9-8a883260cc55" }, { - "id": "9fb05ea1-f85e-209e-7619-e40450acd7f3", - "headers": "Authorization: wrong\nContent-Type: application/json\n", - "url": "{{url}}/admin/copilots", + "id": "9ddc746e-591c-69e7-2326-a05aa52f7109", + "headers": "Content-Type: application/json\n", + "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, "method": "POST", @@ -1418,36 +1550,36 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474178858906, - "name": "create copilot without Bearer header", + "time": 1474168977872, + "name": "create admin without Authorization header", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isSoftwareCopilot\": true,\n \"isStudioCopilot\":true\n}", - "folder": "8052cbf5-e206-af03-0392-e853f3f06bf4" + "rawModeData": "{\n \"username\": \"dok_tester\"\n}", + "folder": "305f84dd-24a3-cbe7-97f1-7063b14a5f42" }, { - "id": "9ff114f0-56ca-f56c-08e4-3bb4dcaac10f", + "id": "a183318a-b246-f372-1b0e-2ff1ad2395c0", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/copilots", + "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, - "method": "POST", + "method": "DELETE", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474189226479, - "name": "create copilot without isSoftwareCopilot", + "time": 1474266891365, + "name": "remove reviewer with admin token", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isStudioCopilot\":true\n}", - "folder": "8052cbf5-e206-af03-0392-e853f3f06bf4" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", + "folder": "f51d9a83-9d4a-fa4d-a3a8-08c9a94a35b5" }, { - "id": "a466f2b7-2f9c-4a14-fc0e-eee7981cdb42", + "id": "a407a482-48ea-5561-9158-71259c3e8a3b", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", "url": "{{url}}/admin/reviewers", "preRequestScript": null, @@ -1458,57 +1590,17 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474282767080, - "name": "create reviewer with f2f category id", - "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", - "responses": [], - "rawModeData": "{\n \"username\": \"liquid_user\",\n \"categoryId\": 38\n}", - "folder": "7544e9b2-c615-4376-7145-511bb968c906" - }, - { - "id": "a47c9a54-d12a-6801-02a1-c57c420237cf", - "headers": "", - "url": "{{url}}/admin/copilots", - "preRequestScript": null, - "pathVariables": {}, - "method": "GET", - "data": null, - "dataMode": "params", - "tests": null, - "currentHelper": "normal", - "helperAttributes": {}, - "time": 1474176772030, - "name": "get all copilots without Authorization header", - "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", - "responses": [], - "folder": "1a80812c-dfa2-5dc4-aca7-299502bbc807" - }, - { - "id": "a495567b-a450-037f-ca8e-c9da52116890", - "headers": "Content-Type: application/json\n", - "url": "{{url}}/auth", - "preRequestScript": null, - "pathVariables": {}, - "method": "POST", - "data": [], - "dataMode": "raw", - "version": 2, - "tests": "var authResponse = JSON.parse(responseBody);\npostman.setEnvironmentVariable(\"authToken\", authResponse.token);\ntests[\"Status code is 200\"] = responseCode.code === 200;\nvar jsonData = JSON.parse(responseBody);\ntests[\"A valid token is returned\"] = !!jsonData.token;", - "currentHelper": "normal", - "helperAttributes": {}, - "time": 1474159245944, - "name": "Log in as ordinary user", + "time": 1474188081763, + "name": "create reviewer with non-integer categoryId", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"user\", \n \"password\": \"password\"\n}", - "folder": "fedff379-68f7-3322-d2e9-29471d82cc60" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 1.1\n}", + "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" }, { - "id": "a887c7eb-8b15-90aa-07ef-6d998297bcee", - "headers": "Authorization: wrong\nContent-Type: application/json\n", + "id": "a6001143-99ca-b1ab-a1c9-58c3dc8b6fe0", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, @@ -1518,17 +1610,17 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474189071606, - "name": "remove reviewer without Bearer header", + "time": 1474282491538, + "name": "remove reviewer with empty username", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", - "folder": "f11d599f-4472-bcef-b9e3-7c86ac139e35" + "rawModeData": "{\n \"username\": \" \",\n \"categoryId\": 14\n}", + "folder": "f51d9a83-9d4a-fa4d-a3a8-08c9a94a35b5" }, { - "id": "a8e7c6c2-1cfb-e3ad-af5c-9c27bd71924b", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "id": "b557e83b-d42a-a7b8-8a9c-8fa2270188b1", + "headers": "Authorization: wrong\nContent-Type: application/json\n", "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, @@ -1538,58 +1630,57 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474282655617, - "name": "create reviewer with empty username", + "time": 1474187893955, + "name": "create reviewer without Bearer header", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \" \",\n \"categoryId\": 14\n}", - "folder": "7544e9b2-c615-4376-7145-511bb968c906" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", + "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" }, { - "id": "ac18e672-1e47-37fa-1ae8-85eed1beab2d", - "headers": "Content-Type: application/json\n", - "url": "{{url}}/admin/reviewers", + "id": "b5f484a7-b5e9-e763-97fb-5d750d08cd6d", + "headers": "Authorization: wrong\n", + "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, - "method": "POST", - "data": [], - "dataMode": "raw", + "method": "GET", + "data": null, + "dataMode": "params", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474187888883, - "name": "create reviewer without Authorization header", + "time": 1474174209799, + "name": "get all admins without Bearer header", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", - "folder": "7544e9b2-c615-4376-7145-511bb968c906" + "folder": "43eec092-7864-262f-fe9d-a2a416e1a2d8" }, { - "id": "ad152575-1e23-f242-96d2-f4b49a616c56", + "id": "b762147c-aae5-9630-dfe7-d6468a8a3843", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/copilots", + "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, - "method": "DELETE", + "method": "POST", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474177119734, - "name": "remove copilot without username", + "time": 1474169000065, + "name": "create admin without username", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], "rawModeData": "{}", - "folder": "2afb4105-1932-6ef0-866c-43ecb13c0048" + "folder": "305f84dd-24a3-cbe7-97f1-7063b14a5f42" }, { - "id": "b0bfa529-5f58-d5a6-e1bc-2099abfa253f", - "headers": "Authorization: Bearer {{adminToken}}\n", - "url": "{{url}}/admin/admins", + "id": "c15dff6e-1a55-a875-3460-2d2097b2f960", + "headers": "Authorization: Bearer wrong\n", + "url": "{{url}}/admin/reviewers?categoryId=7", "preRequestScript": null, "pathVariables": {}, "method": "GET", @@ -1598,15 +1689,15 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474173887249, - "name": "get all admins with admin token", + "time": 1474282226901, + "name": "get all reviewers with wrong Bearer header", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "folder": "2964b89d-893b-aada-2e0e-c4136b920508" + "folder": "790ca3b9-d88f-04e9-b65d-fd59442f3394" }, { - "id": "b83cdcb1-5abe-0f73-1c9c-b558c0634baf", + "id": "c21ce35d-8558-ca77-c6af-8a6d930564b9", "headers": "Authorization: Bearer {{userToken}}\n", "url": "{{url}}/admin/admins", "preRequestScript": null, @@ -1620,91 +1711,93 @@ "time": 1474174015997, "name": "get all admins with user token", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "folder": "2964b89d-893b-aada-2e0e-c4136b920508" + "folder": "43eec092-7864-262f-fe9d-a2a416e1a2d8" }, { - "id": "b84bd2e1-cd0b-3489-3c11-917a1624249e", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers?categoryId=14", + "id": "c2e943b2-f53d-6788-26e6-ca35b5a5fec7", + "headers": "Content-Type: application/json\n", + "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, - "method": "POST", + "method": "DELETE", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474282455411, - "name": "create reviewer with categoryId in query", + "time": 1474177110084, + "name": "remove copilot without Authorization header", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "7544e9b2-c615-4376-7145-511bb968c906" + "folder": "dcec6b34-9127-b6df-bbd9-da6c35c739f8" }, { - "id": "b8d3fef6-214c-5032-3002-f6c16f3288e2", - "headers": "Authorization: Bearer wrong\nContent-Type: application/json\n", - "url": "{{url}}/admin/admins", + "id": "c3dcb7b2-c57c-398e-62d8-170db419f168", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, - "method": "DELETE", + "method": "POST", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474173287352, - "name": "remove admin with wrong Bearer header", + "time": 1474188046380, + "name": "create reviewer with nagative categoryId", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "78aeaf8b-80c8-40df-6ed6-2af5acdbf2ea" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": -1\n}", + "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" }, { - "id": "c0db4362-622a-b556-1991-80df568707b7", - "headers": "Authorization: Bearer {{adminToken}}\n", - "url": "{{url}}/admin/reviewers?categoryId=-4", + "id": "c42386fb-4880-273c-5f56-514a24108ffc", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, - "method": "GET", - "data": null, - "dataMode": "params", + "method": "POST", + "data": [], + "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474184022183, - "name": "get all reviewers with negative categoryId", + "time": 1474189200056, + "name": "create reviewer without categoryId", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "folder": "81516934-d74e-f97d-262f-21d87d5961d1" + "rawModeData": "{\n \"username\": \"dok_tester\"\n}", + "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" }, { - "id": "c1d0d1a9-a8b9-8ee7-c6e6-e539a52fbf35", - "headers": "Authorization: Bearer {{adminToken}}\n", + "id": "d01d666a-59bc-e7e9-2fc1-435a1b4cee89", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, - "method": "GET", - "data": null, - "dataMode": "params", + "method": "DELETE", + "data": [], + "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474189283486, - "name": "get all reviewers without categoryId", + "time": 1474189158880, + "name": "remove reviewer with non-integer categoryId", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "folder": "81516934-d74e-f97d-262f-21d87d5961d1" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 1.1\n}", + "folder": "f51d9a83-9d4a-fa4d-a3a8-08c9a94a35b5" }, { - "id": "c28b4a81-8ee7-24ba-fc8b-54b1b3642fab", - "headers": "Authorization: Bearer {{userToken}}\n", + "id": "d0457f1e-5957-b83c-f603-aaf45690e622", + "headers": "", "url": "{{url}}/admin/reviewers?categoryId=7", "preRequestScript": null, "pathVariables": {}, @@ -1714,17 +1807,17 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474282212758, - "name": "get all reviewers with user token", + "time": 1474282217351, + "name": "get all reviewers without Authorization header", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "folder": "81516934-d74e-f97d-262f-21d87d5961d1" + "folder": "790ca3b9-d88f-04e9-b65d-fd59442f3394" }, { - "id": "c3383672-4018-ec1b-2688-515b73987d36", + "id": "d0e8a5bc-f7c7-268b-5a66-37e90947dabc", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers?categoryId=14", + "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, "method": "DELETE", @@ -1733,58 +1826,77 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474273020582, - "name": "remove reviewer with categoryId in query", + "time": 1474177129491, + "name": "remove copilot with not exist username", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "f11d599f-4472-bcef-b9e3-7c86ac139e35" + "rawModeData": "{\n \"username\": \"notexist\"\n}", + "folder": "dcec6b34-9127-b6df-bbd9-da6c35c739f8" }, { - "id": "c8075e84-bb8d-7596-ba92-5990705f93bc", - "headers": "Authorization: wrong\nContent-Type: application/json\n", - "url": "{{url}}/admin/admins", + "id": "d7913d8d-6c66-b1cd-62d5-c40393c22661", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, - "method": "DELETE", + "method": "POST", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474173283865, - "name": "remove admin without Bearer header", + "time": 1474179169639, + "name": "create copilot with empty username", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "78aeaf8b-80c8-40df-6ed6-2af5acdbf2ea" + "rawModeData": "{\n \"username\": \" \",\n \"isSoftwareCopilot\": true,\n \"isStudioCopilot\":true\n}", + "folder": "1438537c-a455-8206-0b64-bcb6e98cb447" }, { - "id": "ccc25e86-5365-aaf6-8ce8-9838898142eb", + "id": "dcf543f4-41e0-0506-52a1-d9abc07132e2", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, - "method": "DELETE", + "method": "POST", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474177185914, - "name": "remove copilot with admin token", + "time": 1474179220315, + "name": "create copilot with invalid isSoftwareCopilot", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "2afb4105-1932-6ef0-866c-43ecb13c0048" + "rawModeData": "{\n \"username\": \"notexist\",\n \"isSoftwareCopilot\": \"invalid boolean\",\n \"isStudioCopilot\":true\n}", + "folder": "1438537c-a455-8206-0b64-bcb6e98cb447" }, { - "id": "d0a6e94f-3c59-2398-f0f5-a1d54a6f4e15", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers", + "id": "e1dd94fd-2dea-4082-61f8-a551fcf1d55f", + "headers": "Authorization: Bearer wrong\n", + "url": "{{url}}/admin/copilots", + "preRequestScript": null, + "pathVariables": {}, + "method": "GET", + "data": null, + "dataMode": "params", + "tests": null, + "currentHelper": "normal", + "helperAttributes": {}, + "time": 1474176766163, + "name": "get all copilots with wrong Bearer header", + "description": "", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "responses": [], + "folder": "2c775e97-29a3-c27d-abb5-e5dc6a5e05d9" + }, + { + "id": "e3c87489-0dac-48e0-869b-117743e7fb01", + "headers": "Authorization: Bearer {{userToken}}\nContent-Type: application/json\n", + "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, "method": "POST", @@ -1793,57 +1905,57 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474282659872, - "name": "create reviewer with not exist username", + "time": 1474177780363, + "name": "create copilot with user token", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"notexist\",\n \"categoryId\": 14\n}", - "folder": "7544e9b2-c615-4376-7145-511bb968c906" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isSoftwareCopilot\": true,\n \"isStudioCopilot\":true\n}", + "folder": "1438537c-a455-8206-0b64-bcb6e98cb447" }, { - "id": "d2bf20ce-e0ed-a347-69dc-577e34dbefd0", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "id": "e498adc6-5df6-ea02-491f-de46950eff67", + "headers": "Authorization: wrong\nContent-Type: application/json\n", "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, - "method": "DELETE", + "method": "POST", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474173258538, - "name": "remove admin with admin token", + "time": 1474168982704, + "name": "create admin without Bearer header", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "78aeaf8b-80c8-40df-6ed6-2af5acdbf2ea" + "folder": "305f84dd-24a3-cbe7-97f1-7063b14a5f42" }, { - "id": "da88d593-5117-3c1f-f56c-47ac74724c79", + "id": "e5179ef5-cef4-a08b-9fbf-cd63b4a4066d", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers", + "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, - "method": "DELETE", + "method": "POST", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474282491538, - "name": "remove reviewer with empty username", + "time": 1474169674465, + "name": "create admin with empty username", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \" \",\n \"categoryId\": 14\n}", - "folder": "f11d599f-4472-bcef-b9e3-7c86ac139e35" + "rawModeData": "{\n \"username\": \" \"\n}", + "folder": "305f84dd-24a3-cbe7-97f1-7063b14a5f42" }, { - "id": "ddf839fa-733a-056a-8a2c-a1e56d0e9072", - "headers": "Authorization: Bearer wrong\n", + "id": "e61162b5-ccbd-79fc-7daa-ad1e9e71f8db", + "headers": "Authorization: Bearer {{userToken}}\n", "url": "{{url}}/admin/reviewers?categoryId=7", "preRequestScript": null, "pathVariables": {}, @@ -1853,56 +1965,57 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474282226901, - "name": "get all reviewers with wrong Bearer header", + "time": 1474282212758, + "name": "get all reviewers with user token", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "folder": "81516934-d74e-f97d-262f-21d87d5961d1" + "folder": "790ca3b9-d88f-04e9-b65d-fd59442f3394" }, { - "id": "e058d344-3c5d-951a-c86e-ebfeba41bab8", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/copilots", + "id": "e766e9a8-dd56-26b0-5fa7-2e7e876001d7", + "headers": "Authorization: Bearer wrong\nContent-Type: application/json\n", + "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, - "method": "POST", + "method": "DELETE", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474179507223, - "name": "create copilot with isStudioCopilot false", + "time": 1474173287352, + "name": "remove admin with wrong Bearer header", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isSoftwareCopilot\": 1,\n \"isStudioCopilot\":0\n}", - "folder": "8052cbf5-e206-af03-0392-e853f3f06bf4" + "rawModeData": "{\n \"username\": \"dok_tester\"\n}", + "folder": "4ff79efc-3da3-8c10-cbf9-8a883260cc55" }, { - "id": "e10c59ae-1669-54bd-03bb-4de19d51fb5e", - "headers": "Authorization: wrong\n", + "id": "e8a850e5-31bf-6c13-0e44-bc4583bca2cb", + "headers": "Authorization: wrong\nContent-Type: application/json\n", "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, - "method": "GET", - "data": null, - "dataMode": "params", + "method": "DELETE", + "data": [], + "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474174209799, - "name": "get all admins without Bearer header", + "time": 1474173283865, + "name": "remove admin without Bearer header", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "folder": "2964b89d-893b-aada-2e0e-c4136b920508" + "rawModeData": "{\n \"username\": \"dok_tester\"\n}", + "folder": "4ff79efc-3da3-8c10-cbf9-8a883260cc55" }, { - "id": "e6b6464b-da41-67ee-c2ca-53b1d5ba417d", - "headers": "Authorization: Bearer wrong\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers", + "id": "eb8f368e-9c8e-47b7-c70d-1cf7ac89c02c", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, "method": "DELETE", @@ -1911,18 +2024,38 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474189083334, - "name": "remove reviewer with wrong Bearer header", + "time": 1474173533574, + "name": "remove admin with notexist username", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", - "folder": "f11d599f-4472-bcef-b9e3-7c86ac139e35" + "rawModeData": "{\n \"username\": \"notexist\"\n}", + "folder": "4ff79efc-3da3-8c10-cbf9-8a883260cc55" }, { - "id": "ebcf31ae-035b-49ac-41d4-fa4484eff6a1", + "id": "eeabcbce-4ca9-88ce-ec1a-93e0729bad11", + "headers": "Authorization: wrong\nContent-Type: application/json\n", + "url": "{{url}}/admin/copilots", + "preRequestScript": null, + "pathVariables": {}, + "method": "DELETE", + "data": [], + "dataMode": "raw", + "tests": null, + "currentHelper": "normal", + "helperAttributes": {}, + "time": 1474177113168, + "name": "remove copilot without Bearer header", + "description": "", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "responses": [], + "rawModeData": "{\n \"username\": \"dok_tester\"\n}", + "folder": "dcec6b34-9127-b6df-bbd9-da6c35c739f8" + }, + { + "id": "f6e293f3-5650-d73b-36e8-97d587604a4b", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers", + "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, "method": "POST", @@ -1931,18 +2064,18 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474187872946, - "name": "create reviewer with admin token", + "time": 1474179290066, + "name": "create copilot with isStudioCopilot/isSoftwareCopilot false", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", - "folder": "7544e9b2-c615-4376-7145-511bb968c906" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isStudioCopilot\": false,\n \"isSoftwareCopilot\":false\n}", + "folder": "1438537c-a455-8206-0b64-bcb6e98cb447" }, { - "id": "ef7fd1f5-a302-b7b6-a772-a43eb3b82062", + "id": "f88f1d64-7461-652d-f3fb-6c48fa553e61", "headers": "Authorization: Bearer {{adminToken}}\n", - "url": "{{url}}/admin/reviewers?categoryId=wrong", + "url": "{{url}}/admin/reviewers?categoryId=7", "preRequestScript": null, "pathVariables": {}, "method": "GET", @@ -1951,75 +2084,76 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474184004438, - "name": "get all reviewers with invalid categoryId", + "time": 1474268286128, + "name": "get all reviewers with admin token", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "folder": "81516934-d74e-f97d-262f-21d87d5961d1" + "folder": "790ca3b9-d88f-04e9-b65d-fd59442f3394" }, { - "id": "f6c44b3f-570d-e48f-3b7e-8419a9ebe9b6", - "headers": "Content-Type: application/json\n", - "url": "{{url}}/auth", + "id": "f8efe766-a322-ee21-b4f5-78d78642af19", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, "method": "POST", "data": [], "dataMode": "raw", - "version": 2, - "tests": "var authResponse = JSON.parse(responseBody);\npostman.setEnvironmentVariable(\"authToken\", authResponse.token);\ntests[\"Status code is 200\"] = responseCode.code === 200;\nvar jsonData = JSON.parse(responseBody);\ntests[\"A valid token is returned\"] = !!jsonData.token;", + "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474159263289, - "name": "Login as admin user", + "time": 1474187901930, + "name": "create reviewer without username", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"heffan\", \n \"password\": \"password\"\n}", - "folder": "fedff379-68f7-3322-d2e9-29471d82cc60" + "rawModeData": "{}", + "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" }, { - "id": "f784d0d8-8645-7633-91c6-54ec81aa95ff", - "headers": "Authorization: Bearer {{adminToken}}\n", - "url": "{{url}}/admin/reviewers?categoryId=1.1", + "id": "f901106d-47f8-080c-d56b-7badc5774481", + "headers": "Content-Type: application/json\n", + "url": "{{url}}/auth", "preRequestScript": null, "pathVariables": {}, - "method": "GET", - "data": null, - "dataMode": "params", - "tests": null, + "method": "POST", + "data": [], + "dataMode": "raw", + "version": 2, + "tests": "var authResponse = JSON.parse(responseBody);\npostman.setEnvironmentVariable(\"authToken\", authResponse.token);\ntests[\"Status code is 200\"] = responseCode.code === 200;\nvar jsonData = JSON.parse(responseBody);\ntests[\"A valid token is returned\"] = !!jsonData.token;", "currentHelper": "normal", "helperAttributes": {}, - "time": 1474188155542, - "name": "get all reviewers with non-integer categoryId", + "time": 1474159245944, + "name": "Log in as ordinary user", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "folder": "81516934-d74e-f97d-262f-21d87d5961d1" + "rawModeData": "{\n \"username\": \"user\", \n \"password\": \"password\"\n}", + "folder": "14f4dd06-76e0-ca22-602f-0ad3974aa4fa" }, { - "id": "fc7d7ac4-d1e1-a441-6717-ecb50b9ad7f6", + "id": "f9a913ac-f3b4-3cba-ad0d-41265aa5904b", "headers": "Authorization: Bearer {{userToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/admins", + "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, - "method": "POST", + "method": "DELETE", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474172375481, - "name": "create admin with user token", + "time": 1474189053598, + "name": "remove reviewer with user token", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "142d5b1b-b304-bced-c1f3-b59e8187d2aa" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", + "folder": "f51d9a83-9d4a-fa4d-a3a8-08c9a94a35b5" }, { - "id": "fe0a03f9-4969-651a-5eed-01de9398498e", + "id": "fbdd77d2-d138-3a05-a543-d5302daeca50", "headers": "Authorization: wrong\n", "url": "{{url}}/admin/reviewers?categoryId=7", "preRequestScript": null, @@ -2033,9 +2167,29 @@ "time": 1474282221279, "name": "get all reviewers without Bearer header", "description": "", - "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "responses": [], + "folder": "790ca3b9-d88f-04e9-b65d-fd59442f3394" + }, + { + "id": "ff7618ed-fc54-1b81-6129-8df5ac4e67a9", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "url": "{{url}}/admin/copilots", + "preRequestScript": null, + "pathVariables": {}, + "method": "DELETE", + "data": [], + "dataMode": "raw", + "tests": null, + "currentHelper": "normal", + "helperAttributes": {}, + "time": 1474177119734, + "name": "remove copilot without username", + "description": "", + "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", "responses": [], - "folder": "81516934-d74e-f97d-262f-21d87d5961d1" + "rawModeData": "{}", + "folder": "dcec6b34-9127-b6df-bbd9-da6c35c739f8" } ] } \ No newline at end of file diff --git a/test/scripts/mock_v3.js b/test/scripts/mock_v3.js new file mode 100644 index 000000000..8df5e8c02 --- /dev/null +++ b/test/scripts/mock_v3.js @@ -0,0 +1,73 @@ +/* + * Copyright (C) 2017 TopCoder Inc., All Rights Reserved. + * + * This is the REST server that mocks some services from the V3 API + * + * @author GFalcon + * @version 1.0 + */ +"use strict"; + +var express = require('express'); +var bodyParser = require('body-parser'); + +var app = express(); + +app.use(bodyParser.json()); + +/* + * Log all incoming requests + */ +/*jslint unparam: true*/ +app.use(function (req, res, next) { + console.info('V3 Request: ' + JSON.stringify({ + path: req.path, + method: req.method, + headers: req.headers, + body: req.body + }, null, ' ')); + next(); +}); +/*jslint unparam: false*/ + +/* + * Return a fake 'authorization token' + */ +/*jslint unparam: true*/ +app.post('/v3/authorizations', function (req, res) { + res.json({ + result: { + content: { + token: 'FAKE-TOKEN' + } + } + }); +}); +/*jslint unparam: false*/ + +/* + * Get group members. Makes each group consist of one user + * (the user from the sample database whose handle is 'user') + * except one group (id 3330004) that doesn't have any users at all + */ +app.get('/v3/groups/:groupId/members', function (req, res) { + /*jslint eqeq: true*/ + if (req.params.groupId != 3330004) { + /*jslint eqeq: false*/ + res.json({ + result: { + content: [{ + memberId: 132458 + }] + } + }); + } else { + res.json({ + result: { + content: [] + } + }); + } +}); + +app.listen(8084); From b4a5dc9fbb1ba0812ea92ef41b52820990164133 Mon Sep 17 00:00:00 2001 From: Vyacheslav V Sokolov Date: Fri, 16 Jun 2017 06:23:53 +0700 Subject: [PATCH 2/4] Restoring an accidentially modified file --- test/postman/Reviewer_Management_API.json | 1892 ++++++++++----------- 1 file changed, 869 insertions(+), 1023 deletions(-) diff --git a/test/postman/Reviewer_Management_API.json b/test/postman/Reviewer_Management_API.json index b58200657..cd7d0837e 100755 --- a/test/postman/Reviewer_Management_API.json +++ b/test/postman/Reviewer_Management_API.json @@ -1,214 +1,203 @@ { - "id": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "id": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "name": "Admin App - TC API Reviewer Management API", "description": "", "order": [], "folders": [ { - "id": "498ee2d2-174c-7049-3cc4-43b4e330083b", - "name": "Get checkpoints", - "description": "", - "order": [ - "8db48405-6ba0-f116-06c6-cc34cffd77c1", - "03badc56-40a6-750a-a0fa-937d6af188b8", - "76441abd-9a70-5fe9-93e1-59dd0318384f", - "60330c29-7ed3-b453-8d01-652084ca19b1", - "46fea4dc-9708-763b-c0cc-713ac9c1a9eb" - ], - "owner": "316251" - }, - { - "id": "305f84dd-24a3-cbe7-97f1-7063b14a5f42", + "id": "142d5b1b-b304-bced-c1f3-b59e8187d2aa", "name": "create admin", "description": "", "order": [ - "2dc63d17-e288-5432-1e70-ea3b38dbd939", - "13cfe266-39c7-4139-4526-0f45743c1ec1", - "9ddc746e-591c-69e7-2326-a05aa52f7109", - "e498adc6-5df6-ea02-491f-de46950eff67", - "0dc9a5b6-60b7-0006-30f3-a93f6a23efee", - "b762147c-aae5-9630-dfe7-d6468a8a3843", - "e5179ef5-cef4-a08b-9fbf-cd63b4a4066d", - "4b62272c-8167-0310-930a-d5f0526c52a8" + "17cd6d9b-17b2-1f5c-a0d8-e0948c718d26", + "fc7d7ac4-d1e1-a441-6717-ecb50b9ad7f6", + "9bccd2a2-8aac-1931-b78e-8b61a99415a4", + "8b843cb6-1fc6-8c0b-1d6d-f54d9470cf76", + "88ae8323-4232-1675-8796-e06c6997f3f9", + "2297e0e7-4871-b68e-6258-b59a1da3acd4", + "59d2ab3f-1ef2-3925-42c4-754eced98658", + "43dbe6f5-32e5-f0f0-5735-42a3a9f08120" ], - "owner": "316251", + "owner": 0, "collectionId": "6369974d-65cc-d819-459b-0026549ddb47" }, { - "id": "1438537c-a455-8206-0b64-bcb6e98cb447", + "id": "8052cbf5-e206-af03-0392-e853f3f06bf4", "name": "create copilot", "description": "", "order": [ - "597e4417-c496-e48d-801c-5504e9201d18", - "16572157-2b12-830a-35df-e87fee271e02", - "121ce835-ccff-770b-cf19-d4c8715734ee", - "e3c87489-0dac-48e0-869b-117743e7fb01", - "7667b82b-d891-3959-4469-2b6e3673ed03", - "1a4b8b23-8b80-aaf8-5350-63d6e573ef85", - "6fc730e8-851c-c0c0-4dbf-79a9fc7c67e1", - "4c54c5ab-5d8b-a873-49b0-0f3d63d6b42f", - "497b04d4-c729-3008-107e-b69aead7e3db", - "676c46be-e1bf-ba14-d357-1ca01119054b", - "d7913d8d-6c66-b1cd-62d5-c40393c22661", - "0303a184-79f4-7216-4ecc-797f324d6f3e", - "dcf543f4-41e0-0506-52a1-d9abc07132e2", - "216bd35b-31af-ba0a-497d-9b93576104b7", - "f6e293f3-5650-d73b-36e8-97d587604a4b" + "3a87b2a7-3761-5089-38d9-6c7d3796e984", + "2cb65342-ba7f-b473-6afc-8a729da04563", + "e058d344-3c5d-951a-c86e-ebfeba41bab8", + "42fc7559-c2a2-8b85-67e3-3812ae0d5998", + "518db876-c166-6aa7-d484-b8b778297b4e", + "9fb05ea1-f85e-209e-7619-e40450acd7f3", + "79444594-2c40-1e6e-9f71-f22d57828026", + "26e53a5b-bef9-17f2-fb02-34595bf8a8c4", + "9ff114f0-56ca-f56c-08e4-3bb4dcaac10f", + "6727946e-aa76-0996-e734-800bb07cf5c6", + "49c5d6f4-5b86-3e9f-8c82-ef7430411264", + "858050d9-d3f2-900f-79a8-4a56c7ca586b", + "68d189c2-eb05-ded4-1e97-414ebde03ab8", + "34ac4817-1082-2274-ed98-f17b63e62786", + "477195d0-14ca-6a6e-274f-513e7d50a45c" ], - "owner": "316251", + "owner": 0, "collectionId": "6369974d-65cc-d819-459b-0026549ddb47" }, { - "id": "ff6b7b38-7532-5c03-26db-c68f88696eb9", + "id": "7544e9b2-c615-4376-7145-511bb968c906", "name": "create reviewer", "description": "", "order": [ - "0b12cd19-4eda-4c11-e926-7f8c8920d2ab", - "1b4714ed-d2cb-cd10-98c3-4965448e6b17", - "617c7aa5-6a13-7f08-3621-050d7bb9fb42", - "32fd36b2-7397-5e93-8b6c-755557c77586", - "b557e83b-d42a-a7b8-8a9c-8fa2270188b1", - "39116742-fb19-f8ba-f177-1e1910b0dd50", - "f8efe766-a322-ee21-b4f5-78d78642af19", - "789c4564-2cb5-a4da-04f4-0d3a432950dd", - "38247541-c9f7-206a-f77a-2cdbd47c3968", - "5eee889a-83e0-96da-a476-ffd50ad66960", - "c3dcb7b2-c57c-398e-62d8-170db419f168", - "a407a482-48ea-5561-9158-71259c3e8a3b", - "c42386fb-4880-273c-5f56-514a24108ffc", - "7b7bc600-f9a9-e566-ccd3-4bff678d50da", - "37345c71-a682-1d40-ff87-7739450f0904", - "8b52ad5d-31a4-8a84-4d24-ceb91021a467", - "61f8c960-54fd-f1b3-0cc3-8ac89de6361a", - "0baebd12-e9e9-b75f-5409-4bdd22db26e1", - "12863b80-7674-2de7-7371-1921c77e6ad1" + "ebcf31ae-035b-49ac-41d4-fa4484eff6a1", + "b84bd2e1-cd0b-3489-3c11-917a1624249e", + "4a6e3f4b-cb9e-978d-281f-81a57545b0ac", + "ac18e672-1e47-37fa-1ae8-85eed1beab2d", + "202e4545-829b-f158-372f-206e632d609f", + "8679c69e-e94d-7188-60fd-bbe506b851d1", + "2f652b9b-7dc4-8140-9ac5-e6995f1a3fba", + "a8e7c6c2-1cfb-e3ad-af5c-9c27bd71924b", + "d0a6e94f-3c59-2398-f0f5-a1d54a6f4e15", + "03ce940d-9b2d-b46b-0f84-48da5529615c", + "24bc8058-d1ef-1f33-eb64-ede9b9663f49", + "84cd43c0-c407-365b-f1f4-07929e2876cc", + "8a43eff3-3f9a-83a2-6734-a683e29252c8", + "790064a6-e429-1f9c-24b5-7112ce1fb8b2", + "0865091c-8f04-f18c-f9e5-e5c182bc8ab3", + "9e458d5b-5aa5-05ec-6240-7d171c75cf5e", + "0e55b155-b8b7-ae58-5505-f1ff9ba0eb36", + "a466f2b7-2f9c-4a14-fc0e-eee7981cdb42", + "16044f47-5b3d-2ba2-1787-8e6f7e78af97" ], - "owner": "316251", + "owner": 0, "collectionId": "6369974d-65cc-d819-459b-0026549ddb47" }, { - "id": "43eec092-7864-262f-fe9d-a2a416e1a2d8", + "id": "2964b89d-893b-aada-2e0e-c4136b920508", "name": "get all admins", "description": "", "order": [ - "6ab91574-6c11-9d54-a6a3-a87304bec08b", - "c21ce35d-8558-ca77-c6af-8a6d930564b9", - "1739bc1d-f48e-2f66-c423-d56a7dd6925f", - "b5f484a7-b5e9-e763-97fb-5d750d08cd6d", - "1c6e9cc9-1d15-c2cb-0b7d-7b552558f26c" + "b0bfa529-5f58-d5a6-e1bc-2099abfa253f", + "b83cdcb1-5abe-0f73-1c9c-b558c0634baf", + "144d7cd5-cedb-1e15-fec5-27c5e56863df", + "e10c59ae-1669-54bd-03bb-4de19d51fb5e", + "828d7e47-ee45-5ed2-fe37-2114815e84f1" ], - "owner": "316251", + "owner": 0, "collectionId": "6369974d-65cc-d819-459b-0026549ddb47" }, { - "id": "2c775e97-29a3-c27d-abb5-e5dc6a5e05d9", + "id": "1a80812c-dfa2-5dc4-aca7-299502bbc807", "name": "get all copilots", "description": "", "order": [ - "0554d512-8935-33a8-6447-85eba32b8873", - "2e452537-8224-19aa-e79d-3bdd2d3d6092", - "62a5e348-741b-fd42-ed58-839def26d4bf", - "05f2c4f0-2f80-95ed-54f6-2b731960bdac", - "e1dd94fd-2dea-4082-61f8-a551fcf1d55f" + "67db2b5a-4b85-4e18-2709-5c475849329f", + "2d18170b-9631-3c97-fc68-51d0ed76766c", + "a47c9a54-d12a-6801-02a1-c57c420237cf", + "21bdc1e1-c5b2-d063-fd54-386ab396b224", + "897d4baa-72d5-1eca-ff61-51db0d14408c" ], - "owner": "316251", + "owner": 0, "collectionId": "6369974d-65cc-d819-459b-0026549ddb47" }, { - "id": "790ca3b9-d88f-04e9-b65d-fd59442f3394", + "id": "81516934-d74e-f97d-262f-21d87d5961d1", "name": "get all reviewers", "description": "", "order": [ - "f88f1d64-7461-652d-f3fb-6c48fa553e61", - "e61162b5-ccbd-79fc-7daa-ad1e9e71f8db", - "d0457f1e-5957-b83c-f603-aaf45690e622", - "fbdd77d2-d138-3a05-a543-d5302daeca50", - "c15dff6e-1a55-a875-3460-2d2097b2f960", - "4f247a99-8f61-47ea-3323-68ec5a7e7000", - "9308798f-cbfd-b44c-1d47-6ef6650424f0", - "4547a259-b0cf-c5e6-8d04-035b9ae443ce", - "52edc048-18d6-ce4d-5312-69286ce2e2f9" + "08364378-8daf-8159-547e-fac22ca27847", + "c28b4a81-8ee7-24ba-fc8b-54b1b3642fab", + "8bd1727c-34f8-ced7-eb92-d50cc6e56772", + "fe0a03f9-4969-651a-5eed-01de9398498e", + "ddf839fa-733a-056a-8a2c-a1e56d0e9072", + "ef7fd1f5-a302-b7b6-a772-a43eb3b82062", + "c0db4362-622a-b556-1991-80df568707b7", + "f784d0d8-8645-7633-91c6-54ec81aa95ff", + "c1d0d1a9-a8b9-8ee7-c6e6-e539a52fbf35" ], - "owner": "316251", + "owner": 0, "collectionId": "6369974d-65cc-d819-459b-0026549ddb47" }, { - "id": "14f4dd06-76e0-ca22-602f-0ad3974aa4fa", + "id": "fedff379-68f7-3322-d2e9-29471d82cc60", "name": "login", "description": "", "order": [ - "1b96aaf0-f11e-a4c3-4217-c0833e6c75ee", - "f901106d-47f8-080c-d56b-7badc5774481" + "f6c44b3f-570d-e48f-3b7e-8419a9ebe9b6", + "a495567b-a450-037f-ca8e-c9da52116890" ], - "owner": "316251", + "owner": 0, "collectionId": "6369974d-65cc-d819-459b-0026549ddb47" }, { - "id": "4ff79efc-3da3-8c10-cbf9-8a883260cc55", + "id": "78aeaf8b-80c8-40df-6ed6-2af5acdbf2ea", "name": "remove admin", "description": "", "order": [ - "2c17ef61-6067-4da2-6125-3bf54a8d7526", - "972a47ef-1768-7d9b-f12c-df8c57cb5bf5", - "2f8eda4d-c65c-ba89-a38c-4f197342b382", - "e8a850e5-31bf-6c13-0e44-bc4583bca2cb", - "e766e9a8-dd56-26b0-5fa7-2e7e876001d7", - "35dea5ec-b89c-fe4f-9a74-4ed2637c3501", - "983e7dd1-673c-a1a9-81e9-4e81ff0ec74b", - "eb8f368e-9c8e-47b7-c70d-1cf7ac89c02c" + "d2bf20ce-e0ed-a347-69dc-577e34dbefd0", + "07358622-f7d4-9233-8dc1-204acb7b1ccf", + "3f0e98fb-e97a-e6ed-8dc7-e864b1447e03", + "c8075e84-bb8d-7596-ba92-5990705f93bc", + "b8d3fef6-214c-5032-3002-f6c16f3288e2", + "2f633003-2ac7-99ec-e52a-8b1f2e0534d4", + "600d723c-706d-42ca-9ecc-94a32e280063", + "1e4fffd8-a809-e9dc-0659-0df467954407" ], - "owner": "316251", + "owner": 0, "collectionId": "6369974d-65cc-d819-459b-0026549ddb47" }, { - "id": "dcec6b34-9127-b6df-bbd9-da6c35c739f8", + "id": "2afb4105-1932-6ef0-866c-43ecb13c0048", "name": "remove copilot", "description": "", "order": [ - "4063d0fe-dc7b-03fd-1958-219c5d10b788", - "3347ecb1-015e-bd23-20ea-1e5c1bacf1ec", - "c2e943b2-f53d-6788-26e6-ca35b5a5fec7", - "eeabcbce-4ca9-88ce-ec1a-93e0729bad11", - "6a8ef947-840a-bf33-c225-be351341f914", - "ff7618ed-fc54-1b81-6129-8df5ac4e67a9", - "73994f91-2d50-2d6b-f808-5c8b5063d046", - "d0e8a5bc-f7c7-268b-5a66-37e90947dabc" + "ccc25e86-5365-aaf6-8ce8-9838898142eb", + "85022108-999a-7200-89cd-e6b11f66bcb8", + "357caf52-98e8-90a9-8d13-1bf8d330915e", + "34b27e13-3b96-0a9e-25e6-8a339c517518", + "49952d3d-864a-25ff-3648-abbb79550dc2", + "ad152575-1e23-f242-96d2-f4b49a616c56", + "538a99a4-4701-1ee0-527c-6d2db316dae6", + "19a2adaa-d44b-5fd7-9ee7-a6d3452e4492" ], - "owner": "316251", + "owner": 0, "collectionId": "6369974d-65cc-d819-459b-0026549ddb47" }, { - "id": "f51d9a83-9d4a-fa4d-a3a8-08c9a94a35b5", + "id": "f11d599f-4472-bcef-b9e3-7c86ac139e35", "name": "remove reviewer", "description": "", "order": [ - "a183318a-b246-f372-1b0e-2ff1ad2395c0", - "f9a913ac-f3b4-3cba-ad0d-41265aa5904b", - "5ebd6774-7f4f-df1a-86e7-f81966773ba8", - "5fcaab29-db1b-2b79-e6a0-ee0f19f60f58", - "7d7675c4-0334-9a22-beab-485f817fbbce", - "6116bd27-1dd4-0d0e-938b-26e50c622b75", - "2208a6ea-3cce-8bae-eb41-a7bc31f99e79", - "a6001143-99ca-b1ab-a1c9-58c3dc8b6fe0", - "5cf9ac97-40c2-128f-a531-982ec0dc1247", - "2fde5963-bef1-afc8-52ff-1b494e2dff11", - "30c5af89-92ae-3cb7-92dc-9c29a41d468a", - "d01d666a-59bc-e7e9-2fc1-435a1b4cee89", - "8bb4421e-098b-3ae7-59b7-869927cf659e", - "261b410d-a3bb-054a-de84-03487ed7b549" + "49557532-d98e-55e3-5cc4-4c702b62e3ed", + "3453a16f-6a34-c92c-91ed-d2107b505e7a", + "c3383672-4018-ec1b-2688-515b73987d36", + "636f8c2c-7cc2-4d90-179e-7808ae8bbba1", + "a887c7eb-8b15-90aa-07ef-6d998297bcee", + "e6b6464b-da41-67ee-c2ca-53b1d5ba417d", + "4b8d4933-247c-d204-23c6-3acd8ec2e66a", + "da88d593-5117-3c1f-f56c-47ac74724c79", + "13c71689-cfe5-512d-f5b6-d971fa88129a", + "6fd784f5-bda9-b183-1d85-c30879a47427", + "37b02c2b-7018-6af5-4e3c-57b2abde2b0e", + "05ed43fe-61be-43b3-36c7-0c4a12f98efd", + "12d79b9a-e008-ea3d-6fa4-21c7e72e4e94", + "6fcaeb1e-8611-9adf-319f-92f61ac2d62d" ], - "owner": "316251", + "owner": 0, "collectionId": "6369974d-65cc-d819-459b-0026549ddb47" } ], "timestamp": 1474156790593, - "owner": "316251", + "owner": 0, "public": false, + "published": false, + "hasRequests": true, "requests": [ { - "id": "0303a184-79f4-7216-4ecc-797f324d6f3e", + "id": "03ce940d-9b2d-b46b-0f84-48da5529615c", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/copilots", + "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, "method": "POST", @@ -217,65 +206,58 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474179176872, - "name": "create copilot with not exist username", + "time": 1474188017748, + "name": "create reviewer with invalid categoryId", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"notexist\",\n \"isSoftwareCopilot\": true,\n \"isStudioCopilot\":true\n}", - "folder": "1438537c-a455-8206-0b64-bcb6e98cb447" - }, - { - "id": "03badc56-40a6-750a-a0fa-937d6af188b8", - "headers": "Authorization: Bearer {{authToken}}\n", - "headerData": [ - { - "key": "Authorization", - "value": "Bearer {{authToken}}", - "description": "", - "enabled": true - } - ], - "url": "{{url}}/develop/challenges/checkpoint/2220002", - "queryParams": [], + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": \"wrong number\"\n}", + "folder": "7544e9b2-c615-4376-7145-511bb968c906" + }, + { + "id": "05ed43fe-61be-43b3-36c7-0c4a12f98efd", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, - "pathVariableData": [], - "method": "GET", - "data": null, - "dataMode": "params", + "method": "DELETE", + "data": [], + "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1497550612717, - "name": "Old logic, access allowed", + "time": 1474189158880, + "name": "remove reviewer with non-integer categoryId", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", - "responses": [] + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "responses": [], + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 1.1\n}", + "folder": "f11d599f-4472-bcef-b9e3-7c86ac139e35" }, { - "id": "0554d512-8935-33a8-6447-85eba32b8873", - "headers": "Authorization: Bearer {{adminToken}}\n", - "url": "{{url}}/admin/copilots", + "id": "07358622-f7d4-9233-8dc1-204acb7b1ccf", + "headers": "Authorization: Bearer {{userToken}}\nContent-Type: application/json\n", + "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, - "method": "GET", - "data": null, - "dataMode": "params", + "method": "DELETE", + "data": [], + "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474176736874, - "name": "get all copilots with admin token", + "time": 1474173280471, + "name": "remove admin with user token", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "folder": "2c775e97-29a3-c27d-abb5-e5dc6a5e05d9" + "rawModeData": "{\n \"username\": \"dok_tester\"\n}", + "folder": "78aeaf8b-80c8-40df-6ed6-2af5acdbf2ea" }, { - "id": "05f2c4f0-2f80-95ed-54f6-2b731960bdac", - "headers": "Authorization: wrong\n", - "url": "{{url}}/admin/copilots", + "id": "08364378-8daf-8159-547e-fac22ca27847", + "headers": "Authorization: Bearer {{adminToken}}\n", + "url": "{{url}}/admin/reviewers?categoryId=7", "preRequestScript": null, "pathVariables": {}, "method": "GET", @@ -284,15 +266,15 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474176769090, - "name": "get all copilots without Bearer header", + "time": 1474268286128, + "name": "get all reviewers with admin token", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "folder": "2c775e97-29a3-c27d-abb5-e5dc6a5e05d9" + "folder": "81516934-d74e-f97d-262f-21d87d5961d1" }, { - "id": "0b12cd19-4eda-4c11-e926-7f8c8920d2ab", + "id": "0865091c-8f04-f18c-f9e5-e5c182bc8ab3", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", "url": "{{url}}/admin/reviewers", "preRequestScript": null, @@ -303,16 +285,16 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474187872946, - "name": "create reviewer with admin token", + "time": 1474268192451, + "name": "create reviewer with invalid immune", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", - "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" + "rawModeData": "{\n \"username\": \"Yoshi\",\n \"categoryId\": 14,\n \"immune\": \"invalid boolean\"\n}", + "folder": "7544e9b2-c615-4376-7145-511bb968c906" }, { - "id": "0baebd12-e9e9-b75f-5409-4bdd22db26e1", + "id": "0e55b155-b8b7-ae58-5505-f1ff9ba0eb36", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", "url": "{{url}}/admin/reviewers", "preRequestScript": null, @@ -323,78 +305,77 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474282767080, - "name": "create reviewer with f2f category id", + "time": 1474282763352, + "name": "create reviewer with code category id", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"liquid_user\",\n \"categoryId\": 38\n}", - "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" + "rawModeData": "{\n \"username\": \"Hung\",\n \"categoryId\": 39\n}", + "folder": "7544e9b2-c615-4376-7145-511bb968c906" }, { - "id": "0dc9a5b6-60b7-0006-30f3-a93f6a23efee", - "headers": "Authorization: Bearer wrong\nContent-Type: application/json\n", - "url": "{{url}}/admin/admins", + "id": "12d79b9a-e008-ea3d-6fa4-21c7e72e4e94", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, - "method": "POST", + "method": "DELETE", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474168987848, - "name": "create admin with wrong Bearer header", + "time": 1474189177783, + "name": "remove reviewer without categoryId", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "305f84dd-24a3-cbe7-97f1-7063b14a5f42" + "folder": "f11d599f-4472-bcef-b9e3-7c86ac139e35" }, { - "id": "121ce835-ccff-770b-cf19-d4c8715734ee", + "id": "13c71689-cfe5-512d-f5b6-d971fa88129a", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/copilots", + "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, - "method": "POST", + "method": "DELETE", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474179507223, - "name": "create copilot with isStudioCopilot false", + "time": 1474282495801, + "name": "remove reviewer with not exist username", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isSoftwareCopilot\": 1,\n \"isStudioCopilot\":0\n}", - "folder": "1438537c-a455-8206-0b64-bcb6e98cb447" + "rawModeData": "{\n \"username\": \"notexist\",\n \"categoryId\": 14\n}", + "folder": "f11d599f-4472-bcef-b9e3-7c86ac139e35" }, { - "id": "12863b80-7674-2de7-7371-1921c77e6ad1", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers?categoryId=14", + "id": "144d7cd5-cedb-1e15-fec5-27c5e56863df", + "headers": "", + "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, - "method": "POST", - "data": [], - "dataMode": "raw", + "method": "GET", + "data": null, + "dataMode": "params", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474284611393, - "name": "create reviewer with categoryId in query and body at same time", + "time": 1474174192935, + "name": "get all admins without Authorization header", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\":7\n}", - "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" + "folder": "2964b89d-893b-aada-2e0e-c4136b920508" }, { - "id": "13cfe266-39c7-4139-4526-0f45743c1ec1", - "headers": "Authorization: Bearer {{userToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/admins", + "id": "16044f47-5b3d-2ba2-1787-8e6f7e78af97", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "url": "{{url}}/admin/reviewers?categoryId=14", "preRequestScript": null, "pathVariables": {}, "method": "POST", @@ -403,18 +384,18 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474172375481, - "name": "create admin with user token", + "time": 1474284611393, + "name": "create reviewer with categoryId in query and body at same time", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "305f84dd-24a3-cbe7-97f1-7063b14a5f42" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\":7\n}", + "folder": "7544e9b2-c615-4376-7145-511bb968c906" }, { - "id": "16572157-2b12-830a-35df-e87fee271e02", + "id": "17cd6d9b-17b2-1f5c-a0d8-e0948c718d26", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/copilots", + "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, "method": "POST", @@ -423,98 +404,78 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474179347234, - "name": "create copilot with isSoftwareCopilot false", - "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", - "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isSoftwareCopilot\": 0,\n \"isStudioCopilot\":true\n}", - "folder": "1438537c-a455-8206-0b64-bcb6e98cb447" - }, - { - "id": "1739bc1d-f48e-2f66-c423-d56a7dd6925f", - "headers": "", - "url": "{{url}}/admin/admins", - "preRequestScript": null, - "pathVariables": {}, - "method": "GET", - "data": null, - "dataMode": "params", - "tests": null, - "currentHelper": "normal", - "helperAttributes": {}, - "time": 1474174192935, - "name": "get all admins without Authorization header", + "time": 1474168970336, + "name": "create admin with admin token", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "folder": "43eec092-7864-262f-fe9d-a2a416e1a2d8" + "rawModeData": "{\n \"username\": \"dok_tester\"\n}", + "folder": "142d5b1b-b304-bced-c1f3-b59e8187d2aa" }, { - "id": "1a4b8b23-8b80-aaf8-5350-63d6e573ef85", - "headers": "Authorization: wrong\nContent-Type: application/json\n", + "id": "19a2adaa-d44b-5fd7-9ee7-a6d3452e4492", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, - "method": "POST", + "method": "DELETE", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474178858906, - "name": "create copilot without Bearer header", + "time": 1474177129491, + "name": "remove copilot with not exist username", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isSoftwareCopilot\": true,\n \"isStudioCopilot\":true\n}", - "folder": "1438537c-a455-8206-0b64-bcb6e98cb447" + "rawModeData": "{\n \"username\": \"notexist\"\n}", + "folder": "2afb4105-1932-6ef0-866c-43ecb13c0048" }, { - "id": "1b4714ed-d2cb-cd10-98c3-4965448e6b17", + "id": "1e4fffd8-a809-e9dc-0659-0df467954407", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers?categoryId=14", + "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, - "method": "POST", + "method": "DELETE", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474282455411, - "name": "create reviewer with categoryId in query", + "time": 1474173533574, + "name": "remove admin with notexist username", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" + "rawModeData": "{\n \"username\": \"notexist\"\n}", + "folder": "78aeaf8b-80c8-40df-6ed6-2af5acdbf2ea" }, { - "id": "1b96aaf0-f11e-a4c3-4217-c0833e6c75ee", - "headers": "Content-Type: application/json\n", - "url": "{{url}}/auth", + "id": "202e4545-829b-f158-372f-206e632d609f", + "headers": "Authorization: wrong\nContent-Type: application/json\n", + "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, "method": "POST", "data": [], "dataMode": "raw", - "version": 2, - "tests": "var authResponse = JSON.parse(responseBody);\npostman.setEnvironmentVariable(\"authToken\", authResponse.token);\ntests[\"Status code is 200\"] = responseCode.code === 200;\nvar jsonData = JSON.parse(responseBody);\ntests[\"A valid token is returned\"] = !!jsonData.token;", + "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474159263289, - "name": "Login as admin user", + "time": 1474187893955, + "name": "create reviewer without Bearer header", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"heffan\", \n \"password\": \"password\"\n}", - "folder": "14f4dd06-76e0-ca22-602f-0ad3974aa4fa" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", + "folder": "7544e9b2-c615-4376-7145-511bb968c906" }, { - "id": "1c6e9cc9-1d15-c2cb-0b7d-7b552558f26c", - "headers": "Authorization: Bearer wrong\n", - "url": "{{url}}/admin/admins", + "id": "21bdc1e1-c5b2-d063-fd54-386ab396b224", + "headers": "Authorization: wrong\n", + "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, "method": "GET", @@ -523,17 +484,17 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474174234342, - "name": "get all admins with wrong Bearer header", + "time": 1474176769090, + "name": "get all copilots without Bearer header", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "folder": "43eec092-7864-262f-fe9d-a2a416e1a2d8" + "folder": "1a80812c-dfa2-5dc4-aca7-299502bbc807" }, { - "id": "216bd35b-31af-ba0a-497d-9b93576104b7", + "id": "2297e0e7-4871-b68e-6258-b59a1da3acd4", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/copilots", + "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, "method": "POST", @@ -542,78 +503,58 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474179249694, - "name": "create copilot with invalid isStudioCopilot", - "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", - "responses": [], - "rawModeData": "{\n \"username\": \"notexist\",\n \"isStudioCopilot\": \"invalid boolean\",\n \"isSoftwareCopilot\":true\n}", - "folder": "1438537c-a455-8206-0b64-bcb6e98cb447" - }, - { - "id": "2208a6ea-3cce-8bae-eb41-a7bc31f99e79", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers", - "preRequestScript": null, - "pathVariables": {}, - "method": "DELETE", - "data": [], - "dataMode": "raw", - "tests": null, - "currentHelper": "normal", - "helperAttributes": {}, - "time": 1474189091821, - "name": "remove reviewer without username", + "time": 1474169000065, + "name": "create admin without username", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], "rawModeData": "{}", - "folder": "f51d9a83-9d4a-fa4d-a3a8-08c9a94a35b5" + "folder": "142d5b1b-b304-bced-c1f3-b59e8187d2aa" }, { - "id": "261b410d-a3bb-054a-de84-03487ed7b549", + "id": "24bc8058-d1ef-1f33-eb64-ede9b9663f49", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers?categoryId=14", + "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, - "method": "DELETE", + "method": "POST", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474284520276, - "name": "remove reviewer with categoryId in query and body at same time", + "time": 1474188046380, + "name": "create reviewer with nagative categoryId", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\":7\n}", - "folder": "f51d9a83-9d4a-fa4d-a3a8-08c9a94a35b5" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": -1\n}", + "folder": "7544e9b2-c615-4376-7145-511bb968c906" }, { - "id": "2c17ef61-6067-4da2-6125-3bf54a8d7526", + "id": "26e53a5b-bef9-17f2-fb02-34595bf8a8c4", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/admins", + "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, - "method": "DELETE", + "method": "POST", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474173258538, - "name": "remove admin with admin token", + "time": 1474178883094, + "name": "create copilot without username", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "4ff79efc-3da3-8c10-cbf9-8a883260cc55" + "rawModeData": "{}", + "folder": "8052cbf5-e206-af03-0392-e853f3f06bf4" }, { - "id": "2dc63d17-e288-5432-1e70-ea3b38dbd939", + "id": "2cb65342-ba7f-b473-6afc-8a729da04563", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/admins", + "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, "method": "POST", @@ -622,16 +563,16 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474168970336, - "name": "create admin with admin token", + "time": 1474179347234, + "name": "create copilot with isSoftwareCopilot false", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "305f84dd-24a3-cbe7-97f1-7063b14a5f42" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isSoftwareCopilot\": 0,\n \"isStudioCopilot\":true\n}", + "folder": "8052cbf5-e206-af03-0392-e853f3f06bf4" }, { - "id": "2e452537-8224-19aa-e79d-3bdd2d3d6092", + "id": "2d18170b-9631-3c97-fc68-51d0ed76766c", "headers": "Authorization: Bearer {{userToken}}\n", "url": "{{url}}/admin/copilots", "preRequestScript": null, @@ -645,13 +586,13 @@ "time": 1474176739711, "name": "get all copilots with user token", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "folder": "2c775e97-29a3-c27d-abb5-e5dc6a5e05d9" + "folder": "1a80812c-dfa2-5dc4-aca7-299502bbc807" }, { - "id": "2f8eda4d-c65c-ba89-a38c-4f197342b382", - "headers": "Content-Type: application/json\n", + "id": "2f633003-2ac7-99ec-e52a-8b1f2e0534d4", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, @@ -661,37 +602,37 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474173276705, - "name": "remove admin without Authorization header", + "time": 1474173290943, + "name": "remove admin without username", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "4ff79efc-3da3-8c10-cbf9-8a883260cc55" + "rawModeData": "{}", + "folder": "78aeaf8b-80c8-40df-6ed6-2af5acdbf2ea" }, { - "id": "2fde5963-bef1-afc8-52ff-1b494e2dff11", + "id": "2f652b9b-7dc4-8140-9ac5-e6995f1a3fba", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, - "method": "DELETE", + "method": "POST", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474189135829, - "name": "remove reviewer with invalid categoryId", + "time": 1474187901930, + "name": "create reviewer without username", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": \"wrong number\"\n}", - "folder": "f51d9a83-9d4a-fa4d-a3a8-08c9a94a35b5" + "rawModeData": "{}", + "folder": "7544e9b2-c615-4376-7145-511bb968c906" }, { - "id": "30c5af89-92ae-3cb7-92dc-9c29a41d468a", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "id": "3453a16f-6a34-c92c-91ed-d2107b505e7a", + "headers": "Authorization: Bearer {{userToken}}\nContent-Type: application/json\n", "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, @@ -701,18 +642,18 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474189145913, - "name": "remove reviewer with negative categoryId", + "time": 1474189053598, + "name": "remove reviewer with user token", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": -1\n}", - "folder": "f51d9a83-9d4a-fa4d-a3a8-08c9a94a35b5" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", + "folder": "f11d599f-4472-bcef-b9e3-7c86ac139e35" }, { - "id": "32fd36b2-7397-5e93-8b6c-755557c77586", - "headers": "Content-Type: application/json\n", - "url": "{{url}}/admin/reviewers", + "id": "34ac4817-1082-2274-ed98-f17b63e62786", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, "method": "POST", @@ -721,17 +662,17 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474187888883, - "name": "create reviewer without Authorization header", + "time": 1474179249694, + "name": "create copilot with invalid isStudioCopilot", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", - "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" + "rawModeData": "{\n \"username\": \"notexist\",\n \"isStudioCopilot\": \"invalid boolean\",\n \"isSoftwareCopilot\":true\n}", + "folder": "8052cbf5-e206-af03-0392-e853f3f06bf4" }, { - "id": "3347ecb1-015e-bd23-20ea-1e5c1bacf1ec", - "headers": "Authorization: Bearer {{userToken}}\nContent-Type: application/json\n", + "id": "34b27e13-3b96-0a9e-25e6-8a339c517518", + "headers": "Authorization: wrong\nContent-Type: application/json\n", "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, @@ -741,18 +682,18 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474177106806, - "name": "remove copilot with user token", + "time": 1474177113168, + "name": "remove copilot without Bearer header", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "dcec6b34-9127-b6df-bbd9-da6c35c739f8" + "folder": "2afb4105-1932-6ef0-866c-43ecb13c0048" }, { - "id": "35dea5ec-b89c-fe4f-9a74-4ed2637c3501", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/admins", + "id": "357caf52-98e8-90a9-8d13-1bf8d330915e", + "headers": "Content-Type: application/json\n", + "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, "method": "DELETE", @@ -761,38 +702,38 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474173290943, - "name": "remove admin without username", + "time": 1474177110084, + "name": "remove copilot without Authorization header", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{}", - "folder": "4ff79efc-3da3-8c10-cbf9-8a883260cc55" + "rawModeData": "{\n \"username\": \"dok_tester\"\n}", + "folder": "2afb4105-1932-6ef0-866c-43ecb13c0048" }, { - "id": "37345c71-a682-1d40-ff87-7739450f0904", + "id": "37b02c2b-7018-6af5-4e3c-57b2abde2b0e", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, - "method": "POST", + "method": "DELETE", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474268192451, - "name": "create reviewer with invalid immune", + "time": 1474189145913, + "name": "remove reviewer with negative categoryId", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"Yoshi\",\n \"categoryId\": 14,\n \"immune\": \"invalid boolean\"\n}", - "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": -1\n}", + "folder": "f11d599f-4472-bcef-b9e3-7c86ac139e35" }, { - "id": "38247541-c9f7-206a-f77a-2cdbd47c3968", + "id": "3a87b2a7-3761-5089-38d9-6c7d3796e984", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers", + "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, "method": "POST", @@ -801,143 +742,136 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474282659872, - "name": "create reviewer with not exist username", + "time": 1474272371352, + "name": "create copilot with admin token", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"notexist\",\n \"categoryId\": 14\n}", - "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isSoftwareCopilot\": true,\n \"isStudioCopilot\":true\n}", + "folder": "8052cbf5-e206-af03-0392-e853f3f06bf4" }, { - "id": "39116742-fb19-f8ba-f177-1e1910b0dd50", - "headers": "Authorization: Bearer wrong\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers", + "id": "3f0e98fb-e97a-e6ed-8dc7-e864b1447e03", + "headers": "Content-Type: application/json\n", + "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, - "method": "POST", + "method": "DELETE", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474187897602, - "name": "create reviewer with wrong Bearer header", + "time": 1474173276705, + "name": "remove admin without Authorization header", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", - "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" + "rawModeData": "{\n \"username\": \"dok_tester\"\n}", + "folder": "78aeaf8b-80c8-40df-6ed6-2af5acdbf2ea" }, { - "id": "4063d0fe-dc7b-03fd-1958-219c5d10b788", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "id": "42fc7559-c2a2-8b85-67e3-3812ae0d5998", + "headers": "Authorization: Bearer {{userToken}}\nContent-Type: application/json\n", "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, - "method": "DELETE", + "method": "POST", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474177185914, - "name": "remove copilot with admin token", + "time": 1474177780363, + "name": "create copilot with user token", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "dcec6b34-9127-b6df-bbd9-da6c35c739f8" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isSoftwareCopilot\": true,\n \"isStudioCopilot\":true\n}", + "folder": "8052cbf5-e206-af03-0392-e853f3f06bf4" }, { - "id": "4547a259-b0cf-c5e6-8d04-035b9ae443ce", - "headers": "Authorization: Bearer {{adminToken}}\n", - "url": "{{url}}/admin/reviewers?categoryId=1.1", + "id": "43dbe6f5-32e5-f0f0-5735-42a3a9f08120", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, - "method": "GET", - "data": null, - "dataMode": "params", + "method": "POST", + "data": [], + "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474188155542, - "name": "get all reviewers with non-integer categoryId", + "time": 1474173399023, + "name": "create admin with not exist username", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "folder": "790ca3b9-d88f-04e9-b65d-fd59442f3394" + "rawModeData": "{\n \"username\": \"notexist\"\n}", + "folder": "142d5b1b-b304-bced-c1f3-b59e8187d2aa" }, { - "id": "46fea4dc-9708-763b-c0cc-713ac9c1a9eb", - "headers": "Authorization: Bearer {{authToken}}\n", - "headerData": [ - { - "key": "Authorization", - "value": "Bearer {{authToken}}", - "description": "", - "enabled": true - } - ], - "url": "{{url}}/develop/challenges/checkpoint/2220005", - "queryParams": [], + "id": "477195d0-14ca-6a6e-274f-513e7d50a45c", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, - "pathVariableData": [], - "method": "GET", - "data": null, - "dataMode": "params", + "method": "POST", + "data": [], + "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1497550755372, - "name": "New logic, access denied", + "time": 1474179290066, + "name": "create copilot with isStudioCopilot/isSoftwareCopilot false", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", - "responses": [] + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "responses": [], + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isStudioCopilot\": false,\n \"isSoftwareCopilot\":false\n}", + "folder": "8052cbf5-e206-af03-0392-e853f3f06bf4" }, { - "id": "497b04d4-c729-3008-107e-b69aead7e3db", + "id": "49557532-d98e-55e3-5cc4-4c702b62e3ed", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/copilots", + "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, - "method": "POST", + "method": "DELETE", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474189226479, - "name": "create copilot without isSoftwareCopilot", + "time": 1474266891365, + "name": "remove reviewer with admin token", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isStudioCopilot\":true\n}", - "folder": "1438537c-a455-8206-0b64-bcb6e98cb447" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", + "folder": "f11d599f-4472-bcef-b9e3-7c86ac139e35" }, { - "id": "4b62272c-8167-0310-930a-d5f0526c52a8", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/admins", + "id": "49952d3d-864a-25ff-3648-abbb79550dc2", + "headers": "Authorization: Bearer wrong\nContent-Type: application/json\n", + "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, - "method": "POST", + "method": "DELETE", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474173399023, - "name": "create admin with not exist username", + "time": 1474177116518, + "name": "remove copilot with wrong Bearer header", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"notexist\"\n}", - "folder": "305f84dd-24a3-cbe7-97f1-7063b14a5f42" + "rawModeData": "{\n \"username\": \"dok_tester\"\n}", + "folder": "2afb4105-1932-6ef0-866c-43ecb13c0048" }, { - "id": "4c54c5ab-5d8b-a873-49b0-0f3d63d6b42f", + "id": "49c5d6f4-5b86-3e9f-8c82-ef7430411264", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", "url": "{{url}}/admin/copilots", "preRequestScript": null, @@ -948,55 +882,57 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474178883094, - "name": "create copilot without username", + "time": 1474179169639, + "name": "create copilot with empty username", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{}", - "folder": "1438537c-a455-8206-0b64-bcb6e98cb447" + "rawModeData": "{\n \"username\": \" \",\n \"isSoftwareCopilot\": true,\n \"isStudioCopilot\":true\n}", + "folder": "8052cbf5-e206-af03-0392-e853f3f06bf4" }, { - "id": "4f247a99-8f61-47ea-3323-68ec5a7e7000", - "headers": "Authorization: Bearer {{adminToken}}\n", - "url": "{{url}}/admin/reviewers?categoryId=wrong", + "id": "4a6e3f4b-cb9e-978d-281f-81a57545b0ac", + "headers": "Authorization: Bearer {{userToken}}\nContent-Type: application/json\n", + "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, - "method": "GET", - "data": null, - "dataMode": "params", + "method": "POST", + "data": [], + "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474184004438, - "name": "get all reviewers with invalid categoryId", + "time": 1474187884890, + "name": "create reviewer with user token", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "folder": "790ca3b9-d88f-04e9-b65d-fd59442f3394" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", + "folder": "7544e9b2-c615-4376-7145-511bb968c906" }, { - "id": "52edc048-18d6-ce4d-5312-69286ce2e2f9", - "headers": "Authorization: Bearer {{adminToken}}\n", + "id": "4b8d4933-247c-d204-23c6-3acd8ec2e66a", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, - "method": "GET", - "data": null, - "dataMode": "params", + "method": "DELETE", + "data": [], + "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474189283486, - "name": "get all reviewers without categoryId", + "time": 1474189091821, + "name": "remove reviewer without username", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "folder": "790ca3b9-d88f-04e9-b65d-fd59442f3394" + "rawModeData": "{}", + "folder": "f11d599f-4472-bcef-b9e3-7c86ac139e35" }, { - "id": "597e4417-c496-e48d-801c-5504e9201d18", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "id": "518db876-c166-6aa7-d484-b8b778297b4e", + "headers": "Content-Type: application/json\n", "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, @@ -1006,18 +942,18 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474272371352, - "name": "create copilot with admin token", + "time": 1474178853689, + "name": "create copilot without Authorization header", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isSoftwareCopilot\": true,\n \"isStudioCopilot\":true\n}", - "folder": "1438537c-a455-8206-0b64-bcb6e98cb447" + "folder": "8052cbf5-e206-af03-0392-e853f3f06bf4" }, { - "id": "5cf9ac97-40c2-128f-a531-982ec0dc1247", + "id": "538a99a4-4701-1ee0-527c-6d2db316dae6", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers", + "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, "method": "DELETE", @@ -1026,56 +962,56 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474282495801, - "name": "remove reviewer with not exist username", + "time": 1474177126290, + "name": "remove copilot with empty username", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"notexist\",\n \"categoryId\": 14\n}", - "folder": "f51d9a83-9d4a-fa4d-a3a8-08c9a94a35b5" + "rawModeData": "{\n \"username\": \" \"\n}", + "folder": "2afb4105-1932-6ef0-866c-43ecb13c0048" }, { - "id": "5ebd6774-7f4f-df1a-86e7-f81966773ba8", + "id": "59d2ab3f-1ef2-3925-42c4-754eced98658", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers?categoryId=14", + "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, - "method": "DELETE", + "method": "POST", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474273020582, - "name": "remove reviewer with categoryId in query", + "time": 1474169674465, + "name": "create admin with empty username", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "f51d9a83-9d4a-fa4d-a3a8-08c9a94a35b5" + "rawModeData": "{\n \"username\": \" \"\n}", + "folder": "142d5b1b-b304-bced-c1f3-b59e8187d2aa" }, { - "id": "5eee889a-83e0-96da-a476-ffd50ad66960", + "id": "600d723c-706d-42ca-9ecc-94a32e280063", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers", + "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, - "method": "POST", + "method": "DELETE", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474188017748, - "name": "create reviewer with invalid categoryId", + "time": 1474173326368, + "name": "remove admin without empty username", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": \"wrong number\"\n}", - "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" + "rawModeData": "{\n \"username\": \" \"\n}", + "folder": "78aeaf8b-80c8-40df-6ed6-2af5acdbf2ea" }, { - "id": "5fcaab29-db1b-2b79-e6a0-ee0f19f60f58", + "id": "636f8c2c-7cc2-4d90-179e-7808ae8bbba1", "headers": "Content-Type: application/json\n", "url": "{{url}}/admin/reviewers", "preRequestScript": null, @@ -1089,63 +1025,54 @@ "time": 1474189062608, "name": "remove reviewer without Authorization header", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", - "folder": "f51d9a83-9d4a-fa4d-a3a8-08c9a94a35b5" - }, - { - "id": "60330c29-7ed3-b453-8d01-652084ca19b1", - "headers": "Authorization: Bearer {{authToken}}\n", - "headerData": [ - { - "key": "Authorization", - "value": "Bearer {{authToken}}", - "description": "", - "enabled": true - } - ], - "url": "{{url}}/develop/challenges/checkpoint/2220004", - "queryParams": [], + "folder": "f11d599f-4472-bcef-b9e3-7c86ac139e35" + }, + { + "id": "6727946e-aa76-0996-e734-800bb07cf5c6", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, - "pathVariableData": [], - "method": "GET", - "data": null, - "dataMode": "params", + "method": "POST", + "data": [], + "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1497550705028, - "name": "New logic, access allowed", + "time": 1474189246551, + "name": "create copilot without isStudioCopilot", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", - "responses": [] + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "responses": [], + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isSoftwareCopilot\": true\n}", + "folder": "8052cbf5-e206-af03-0392-e853f3f06bf4" }, { - "id": "6116bd27-1dd4-0d0e-938b-26e50c622b75", - "headers": "Authorization: Bearer wrong\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers", + "id": "67db2b5a-4b85-4e18-2709-5c475849329f", + "headers": "Authorization: Bearer {{adminToken}}\n", + "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, - "method": "DELETE", - "data": [], - "dataMode": "raw", + "method": "GET", + "data": null, + "dataMode": "params", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474189083334, - "name": "remove reviewer with wrong Bearer header", + "time": 1474176736874, + "name": "get all copilots with admin token", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", - "folder": "f51d9a83-9d4a-fa4d-a3a8-08c9a94a35b5" + "folder": "1a80812c-dfa2-5dc4-aca7-299502bbc807" }, { - "id": "617c7aa5-6a13-7f08-3621-050d7bb9fb42", - "headers": "Authorization: Bearer {{userToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers", + "id": "68d189c2-eb05-ded4-1e97-414ebde03ab8", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, "method": "POST", @@ -1154,57 +1081,58 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474187884890, - "name": "create reviewer with user token", + "time": 1474179220315, + "name": "create copilot with invalid isSoftwareCopilot", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", - "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" + "rawModeData": "{\n \"username\": \"notexist\",\n \"isSoftwareCopilot\": \"invalid boolean\",\n \"isStudioCopilot\":true\n}", + "folder": "8052cbf5-e206-af03-0392-e853f3f06bf4" }, { - "id": "61f8c960-54fd-f1b3-0cc3-8ac89de6361a", + "id": "6fcaeb1e-8611-9adf-319f-92f61ac2d62d", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers", + "url": "{{url}}/admin/reviewers?categoryId=14", "preRequestScript": null, "pathVariables": {}, - "method": "POST", + "method": "DELETE", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474282763352, - "name": "create reviewer with code category id", + "time": 1474284520276, + "name": "remove reviewer with categoryId in query and body at same time", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"Hung\",\n \"categoryId\": 39\n}", - "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\":7\n}", + "folder": "f11d599f-4472-bcef-b9e3-7c86ac139e35" }, { - "id": "62a5e348-741b-fd42-ed58-839def26d4bf", - "headers": "", - "url": "{{url}}/admin/copilots", + "id": "6fd784f5-bda9-b183-1d85-c30879a47427", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, - "method": "GET", - "data": null, - "dataMode": "params", + "method": "DELETE", + "data": [], + "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474176772030, - "name": "get all copilots without Authorization header", + "time": 1474189135829, + "name": "remove reviewer with invalid categoryId", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "folder": "2c775e97-29a3-c27d-abb5-e5dc6a5e05d9" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": \"wrong number\"\n}", + "folder": "f11d599f-4472-bcef-b9e3-7c86ac139e35" }, { - "id": "676c46be-e1bf-ba14-d357-1ca01119054b", + "id": "790064a6-e429-1f9c-24b5-7112ce1fb8b2", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/copilots", + "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, "method": "POST", @@ -1213,37 +1141,37 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474189246551, - "name": "create copilot without isStudioCopilot", + "time": 1474283473763, + "name": "create reviewer with immune", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isSoftwareCopilot\": true\n}", - "folder": "1438537c-a455-8206-0b64-bcb6e98cb447" + "rawModeData": "{\n \"username\": \"Yoshi\",\n \"categoryId\": 14,\n \"immune\":1\n}", + "folder": "7544e9b2-c615-4376-7145-511bb968c906" }, { - "id": "6a8ef947-840a-bf33-c225-be351341f914", + "id": "79444594-2c40-1e6e-9f71-f22d57828026", "headers": "Authorization: Bearer wrong\nContent-Type: application/json\n", "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, - "method": "DELETE", + "method": "POST", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474177116518, - "name": "remove copilot with wrong Bearer header", + "time": 1474178865110, + "name": "create copilot with wrong Bearer header", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "dcec6b34-9127-b6df-bbd9-da6c35c739f8" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isSoftwareCopilot\": true,\n \"isStudioCopilot\":true\n}", + "folder": "8052cbf5-e206-af03-0392-e853f3f06bf4" }, { - "id": "6ab91574-6c11-9d54-a6a3-a87304bec08b", - "headers": "Authorization: Bearer {{adminToken}}\n", + "id": "828d7e47-ee45-5ed2-fe37-2114815e84f1", + "headers": "Authorization: Bearer wrong\n", "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, @@ -1253,17 +1181,17 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474173887249, - "name": "get all admins with admin token", + "time": 1474174234342, + "name": "get all admins with wrong Bearer header", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "folder": "43eec092-7864-262f-fe9d-a2a416e1a2d8" + "folder": "2964b89d-893b-aada-2e0e-c4136b920508" }, { - "id": "6fc730e8-851c-c0c0-4dbf-79a9fc7c67e1", - "headers": "Authorization: Bearer wrong\nContent-Type: application/json\n", - "url": "{{url}}/admin/copilots", + "id": "84cd43c0-c407-365b-f1f4-07929e2876cc", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, "method": "POST", @@ -1272,17 +1200,17 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474178865110, - "name": "create copilot with wrong Bearer header", + "time": 1474188081763, + "name": "create reviewer with non-integer categoryId", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isSoftwareCopilot\": true,\n \"isStudioCopilot\":true\n}", - "folder": "1438537c-a455-8206-0b64-bcb6e98cb447" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 1.1\n}", + "folder": "7544e9b2-c615-4376-7145-511bb968c906" }, { - "id": "73994f91-2d50-2d6b-f808-5c8b5063d046", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "id": "85022108-999a-7200-89cd-e6b11f66bcb8", + "headers": "Authorization: Bearer {{userToken}}\nContent-Type: application/json\n", "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, @@ -1292,45 +1220,17 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474177126290, - "name": "remove copilot with empty username", + "time": 1474177106806, + "name": "remove copilot with user token", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \" \"\n}", - "folder": "dcec6b34-9127-b6df-bbd9-da6c35c739f8" - }, - { - "id": "76441abd-9a70-5fe9-93e1-59dd0318384f", - "headers": "Authorization: Bearer {{authToken}}\n", - "headerData": [ - { - "key": "Authorization", - "value": "Bearer {{authToken}}", - "description": "", - "enabled": true - } - ], - "url": "{{url}}/develop/challenges/checkpoint/2220003", - "queryParams": [], - "preRequestScript": null, - "pathVariables": {}, - "pathVariableData": [], - "method": "GET", - "data": null, - "dataMode": "params", - "tests": null, - "currentHelper": "normal", - "helperAttributes": {}, - "time": 1497550652259, - "name": "Old logic, access denied", - "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", - "responses": [] + "rawModeData": "{\n \"username\": \"dok_tester\"\n}", + "folder": "2afb4105-1932-6ef0-866c-43ecb13c0048" }, { - "id": "7667b82b-d891-3959-4469-2b6e3673ed03", - "headers": "Content-Type: application/json\n", + "id": "858050d9-d3f2-900f-79a8-4a56c7ca586b", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, @@ -1340,17 +1240,17 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474178853689, - "name": "create copilot without Authorization header", + "time": 1474179176872, + "name": "create copilot with not exist username", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isSoftwareCopilot\": true,\n \"isStudioCopilot\":true\n}", - "folder": "1438537c-a455-8206-0b64-bcb6e98cb447" + "rawModeData": "{\n \"username\": \"notexist\",\n \"isSoftwareCopilot\": true,\n \"isStudioCopilot\":true\n}", + "folder": "8052cbf5-e206-af03-0392-e853f3f06bf4" }, { - "id": "789c4564-2cb5-a4da-04f4-0d3a432950dd", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "id": "8679c69e-e94d-7188-60fd-bbe506b851d1", + "headers": "Authorization: Bearer wrong\nContent-Type: application/json\n", "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, @@ -1360,18 +1260,18 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474282655617, - "name": "create reviewer with empty username", + "time": 1474187897602, + "name": "create reviewer with wrong Bearer header", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \" \",\n \"categoryId\": 14\n}", - "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", + "folder": "7544e9b2-c615-4376-7145-511bb968c906" }, { - "id": "7b7bc600-f9a9-e566-ccd3-4bff678d50da", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers", + "id": "88ae8323-4232-1675-8796-e06c6997f3f9", + "headers": "Authorization: Bearer wrong\nContent-Type: application/json\n", + "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, "method": "POST", @@ -1380,36 +1280,35 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474283473763, - "name": "create reviewer with immune", + "time": 1474168987848, + "name": "create admin with wrong Bearer header", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"Yoshi\",\n \"categoryId\": 14,\n \"immune\":1\n}", - "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" + "rawModeData": "{\n \"username\": \"dok_tester\"\n}", + "folder": "142d5b1b-b304-bced-c1f3-b59e8187d2aa" }, { - "id": "7d7675c4-0334-9a22-beab-485f817fbbce", - "headers": "Authorization: wrong\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers", + "id": "897d4baa-72d5-1eca-ff61-51db0d14408c", + "headers": "Authorization: Bearer wrong\n", + "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, - "method": "DELETE", - "data": [], - "dataMode": "raw", + "method": "GET", + "data": null, + "dataMode": "params", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474189071606, - "name": "remove reviewer without Bearer header", + "time": 1474176766163, + "name": "get all copilots with wrong Bearer header", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", - "folder": "f51d9a83-9d4a-fa4d-a3a8-08c9a94a35b5" + "folder": "1a80812c-dfa2-5dc4-aca7-299502bbc807" }, { - "id": "8b52ad5d-31a4-8a84-4d24-ceb91021a467", + "id": "8a43eff3-3f9a-83a2-6734-a683e29252c8", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", "url": "{{url}}/admin/reviewers", "preRequestScript": null, @@ -1420,69 +1319,38 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474282760160, - "name": "create reviewer with studio type", + "time": 1474189200056, + "name": "create reviewer without categoryId", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"cartajs\",\n \"categoryId\": 17\n}", - "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" + "rawModeData": "{\n \"username\": \"dok_tester\"\n}", + "folder": "7544e9b2-c615-4376-7145-511bb968c906" }, { - "id": "8bb4421e-098b-3ae7-59b7-869927cf659e", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers", + "id": "8b843cb6-1fc6-8c0b-1d6d-f54d9470cf76", + "headers": "Authorization: wrong\nContent-Type: application/json\n", + "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, - "method": "DELETE", + "method": "POST", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474189177783, - "name": "remove reviewer without categoryId", + "time": 1474168982704, + "name": "create admin without Bearer header", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "f51d9a83-9d4a-fa4d-a3a8-08c9a94a35b5" - }, - { - "id": "8db48405-6ba0-f116-06c6-cc34cffd77c1", - "headers": "Authorization: Bearer {{authToken}}\n", - "headerData": [ - { - "key": "Authorization", - "value": "Bearer {{authToken}}", - "description": "", - "enabled": true - } - ], - "url": "{{url}}/develop/challenges/checkpoint/2220001", - "queryParams": [], - "pathVariables": {}, - "pathVariableData": [], - "preRequestScript": null, - "method": "GET", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", - "data": null, - "dataMode": "params", - "name": "No groups (challenge is not private)", - "description": "", - "descriptionFormat": "html", - "time": 1497550504090, - "version": 2, - "responses": [], - "tests": null, - "currentHelper": "normal", - "helperAttributes": {}, - "folder": "498ee2d2-174c-7049-3cc4-43b4e330083b" + "folder": "142d5b1b-b304-bced-c1f3-b59e8187d2aa" }, { - "id": "9308798f-cbfd-b44c-1d47-6ef6650424f0", - "headers": "Authorization: Bearer {{adminToken}}\n", - "url": "{{url}}/admin/reviewers?categoryId=-4", + "id": "8bd1727c-34f8-ced7-eb92-d50cc6e56772", + "headers": "", + "url": "{{url}}/admin/reviewers?categoryId=7", "preRequestScript": null, "pathVariables": {}, "method": "GET", @@ -1491,57 +1359,57 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474184022183, - "name": "get all reviewers with negative categoryId", + "time": 1474282217351, + "name": "get all reviewers without Authorization header", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "folder": "790ca3b9-d88f-04e9-b65d-fd59442f3394" + "folder": "81516934-d74e-f97d-262f-21d87d5961d1" }, { - "id": "972a47ef-1768-7d9b-f12c-df8c57cb5bf5", - "headers": "Authorization: Bearer {{userToken}}\nContent-Type: application/json\n", + "id": "9bccd2a2-8aac-1931-b78e-8b61a99415a4", + "headers": "Content-Type: application/json\n", "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, - "method": "DELETE", + "method": "POST", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474173280471, - "name": "remove admin with user token", + "time": 1474168977872, + "name": "create admin without Authorization header", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "4ff79efc-3da3-8c10-cbf9-8a883260cc55" + "folder": "142d5b1b-b304-bced-c1f3-b59e8187d2aa" }, { - "id": "983e7dd1-673c-a1a9-81e9-4e81ff0ec74b", + "id": "9e458d5b-5aa5-05ec-6240-7d171c75cf5e", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/admins", + "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, - "method": "DELETE", + "method": "POST", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474173326368, - "name": "remove admin without empty username", + "time": 1474282760160, + "name": "create reviewer with studio type", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \" \"\n}", - "folder": "4ff79efc-3da3-8c10-cbf9-8a883260cc55" + "rawModeData": "{\n \"username\": \"cartajs\",\n \"categoryId\": 17\n}", + "folder": "7544e9b2-c615-4376-7145-511bb968c906" }, { - "id": "9ddc746e-591c-69e7-2326-a05aa52f7109", - "headers": "Content-Type: application/json\n", - "url": "{{url}}/admin/admins", + "id": "9fb05ea1-f85e-209e-7619-e40450acd7f3", + "headers": "Authorization: wrong\nContent-Type: application/json\n", + "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, "method": "POST", @@ -1550,36 +1418,36 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474168977872, - "name": "create admin without Authorization header", + "time": 1474178858906, + "name": "create copilot without Bearer header", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "305f84dd-24a3-cbe7-97f1-7063b14a5f42" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isSoftwareCopilot\": true,\n \"isStudioCopilot\":true\n}", + "folder": "8052cbf5-e206-af03-0392-e853f3f06bf4" }, { - "id": "a183318a-b246-f372-1b0e-2ff1ad2395c0", + "id": "9ff114f0-56ca-f56c-08e4-3bb4dcaac10f", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers", + "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, - "method": "DELETE", + "method": "POST", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474266891365, - "name": "remove reviewer with admin token", + "time": 1474189226479, + "name": "create copilot without isSoftwareCopilot", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", - "folder": "f51d9a83-9d4a-fa4d-a3a8-08c9a94a35b5" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isStudioCopilot\":true\n}", + "folder": "8052cbf5-e206-af03-0392-e853f3f06bf4" }, { - "id": "a407a482-48ea-5561-9158-71259c3e8a3b", + "id": "a466f2b7-2f9c-4a14-fc0e-eee7981cdb42", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", "url": "{{url}}/admin/reviewers", "preRequestScript": null, @@ -1590,17 +1458,57 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474188081763, - "name": "create reviewer with non-integer categoryId", + "time": 1474282767080, + "name": "create reviewer with f2f category id", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 1.1\n}", - "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" + "rawModeData": "{\n \"username\": \"liquid_user\",\n \"categoryId\": 38\n}", + "folder": "7544e9b2-c615-4376-7145-511bb968c906" }, { - "id": "a6001143-99ca-b1ab-a1c9-58c3dc8b6fe0", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "id": "a47c9a54-d12a-6801-02a1-c57c420237cf", + "headers": "", + "url": "{{url}}/admin/copilots", + "preRequestScript": null, + "pathVariables": {}, + "method": "GET", + "data": null, + "dataMode": "params", + "tests": null, + "currentHelper": "normal", + "helperAttributes": {}, + "time": 1474176772030, + "name": "get all copilots without Authorization header", + "description": "", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "responses": [], + "folder": "1a80812c-dfa2-5dc4-aca7-299502bbc807" + }, + { + "id": "a495567b-a450-037f-ca8e-c9da52116890", + "headers": "Content-Type: application/json\n", + "url": "{{url}}/auth", + "preRequestScript": null, + "pathVariables": {}, + "method": "POST", + "data": [], + "dataMode": "raw", + "version": 2, + "tests": "var authResponse = JSON.parse(responseBody);\npostman.setEnvironmentVariable(\"authToken\", authResponse.token);\ntests[\"Status code is 200\"] = responseCode.code === 200;\nvar jsonData = JSON.parse(responseBody);\ntests[\"A valid token is returned\"] = !!jsonData.token;", + "currentHelper": "normal", + "helperAttributes": {}, + "time": 1474159245944, + "name": "Log in as ordinary user", + "description": "", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", + "responses": [], + "rawModeData": "{\n \"username\": \"user\", \n \"password\": \"password\"\n}", + "folder": "fedff379-68f7-3322-d2e9-29471d82cc60" + }, + { + "id": "a887c7eb-8b15-90aa-07ef-6d998297bcee", + "headers": "Authorization: wrong\nContent-Type: application/json\n", "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, @@ -1610,17 +1518,17 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474282491538, - "name": "remove reviewer with empty username", + "time": 1474189071606, + "name": "remove reviewer without Bearer header", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \" \",\n \"categoryId\": 14\n}", - "folder": "f51d9a83-9d4a-fa4d-a3a8-08c9a94a35b5" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", + "folder": "f11d599f-4472-bcef-b9e3-7c86ac139e35" }, { - "id": "b557e83b-d42a-a7b8-8a9c-8fa2270188b1", - "headers": "Authorization: wrong\nContent-Type: application/json\n", + "id": "a8e7c6c2-1cfb-e3ad-af5c-9c27bd71924b", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, @@ -1630,57 +1538,58 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474187893955, - "name": "create reviewer without Bearer header", + "time": 1474282655617, + "name": "create reviewer with empty username", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", - "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" + "rawModeData": "{\n \"username\": \" \",\n \"categoryId\": 14\n}", + "folder": "7544e9b2-c615-4376-7145-511bb968c906" }, { - "id": "b5f484a7-b5e9-e763-97fb-5d750d08cd6d", - "headers": "Authorization: wrong\n", - "url": "{{url}}/admin/admins", + "id": "ac18e672-1e47-37fa-1ae8-85eed1beab2d", + "headers": "Content-Type: application/json\n", + "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, - "method": "GET", - "data": null, - "dataMode": "params", + "method": "POST", + "data": [], + "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474174209799, - "name": "get all admins without Bearer header", + "time": 1474187888883, + "name": "create reviewer without Authorization header", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "folder": "43eec092-7864-262f-fe9d-a2a416e1a2d8" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", + "folder": "7544e9b2-c615-4376-7145-511bb968c906" }, { - "id": "b762147c-aae5-9630-dfe7-d6468a8a3843", + "id": "ad152575-1e23-f242-96d2-f4b49a616c56", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/admins", + "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, - "method": "POST", + "method": "DELETE", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474169000065, - "name": "create admin without username", + "time": 1474177119734, + "name": "remove copilot without username", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], "rawModeData": "{}", - "folder": "305f84dd-24a3-cbe7-97f1-7063b14a5f42" + "folder": "2afb4105-1932-6ef0-866c-43ecb13c0048" }, { - "id": "c15dff6e-1a55-a875-3460-2d2097b2f960", - "headers": "Authorization: Bearer wrong\n", - "url": "{{url}}/admin/reviewers?categoryId=7", + "id": "b0bfa529-5f58-d5a6-e1bc-2099abfa253f", + "headers": "Authorization: Bearer {{adminToken}}\n", + "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, "method": "GET", @@ -1689,15 +1598,15 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474282226901, - "name": "get all reviewers with wrong Bearer header", + "time": 1474173887249, + "name": "get all admins with admin token", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "folder": "790ca3b9-d88f-04e9-b65d-fd59442f3394" + "folder": "2964b89d-893b-aada-2e0e-c4136b920508" }, { - "id": "c21ce35d-8558-ca77-c6af-8a6d930564b9", + "id": "b83cdcb1-5abe-0f73-1c9c-b558c0634baf", "headers": "Authorization: Bearer {{userToken}}\n", "url": "{{url}}/admin/admins", "preRequestScript": null, @@ -1711,93 +1620,91 @@ "time": 1474174015997, "name": "get all admins with user token", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "folder": "43eec092-7864-262f-fe9d-a2a416e1a2d8" + "folder": "2964b89d-893b-aada-2e0e-c4136b920508" }, { - "id": "c2e943b2-f53d-6788-26e6-ca35b5a5fec7", - "headers": "Content-Type: application/json\n", - "url": "{{url}}/admin/copilots", + "id": "b84bd2e1-cd0b-3489-3c11-917a1624249e", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "url": "{{url}}/admin/reviewers?categoryId=14", "preRequestScript": null, "pathVariables": {}, - "method": "DELETE", + "method": "POST", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474177110084, - "name": "remove copilot without Authorization header", + "time": 1474282455411, + "name": "create reviewer with categoryId in query", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "dcec6b34-9127-b6df-bbd9-da6c35c739f8" + "folder": "7544e9b2-c615-4376-7145-511bb968c906" }, { - "id": "c3dcb7b2-c57c-398e-62d8-170db419f168", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers", + "id": "b8d3fef6-214c-5032-3002-f6c16f3288e2", + "headers": "Authorization: Bearer wrong\nContent-Type: application/json\n", + "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, - "method": "POST", + "method": "DELETE", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474188046380, - "name": "create reviewer with nagative categoryId", + "time": 1474173287352, + "name": "remove admin with wrong Bearer header", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": -1\n}", - "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" + "rawModeData": "{\n \"username\": \"dok_tester\"\n}", + "folder": "78aeaf8b-80c8-40df-6ed6-2af5acdbf2ea" }, { - "id": "c42386fb-4880-273c-5f56-514a24108ffc", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers", + "id": "c0db4362-622a-b556-1991-80df568707b7", + "headers": "Authorization: Bearer {{adminToken}}\n", + "url": "{{url}}/admin/reviewers?categoryId=-4", "preRequestScript": null, "pathVariables": {}, - "method": "POST", - "data": [], - "dataMode": "raw", + "method": "GET", + "data": null, + "dataMode": "params", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474189200056, - "name": "create reviewer without categoryId", + "time": 1474184022183, + "name": "get all reviewers with negative categoryId", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" + "folder": "81516934-d74e-f97d-262f-21d87d5961d1" }, { - "id": "d01d666a-59bc-e7e9-2fc1-435a1b4cee89", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "id": "c1d0d1a9-a8b9-8ee7-c6e6-e539a52fbf35", + "headers": "Authorization: Bearer {{adminToken}}\n", "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, - "method": "DELETE", - "data": [], - "dataMode": "raw", + "method": "GET", + "data": null, + "dataMode": "params", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474189158880, - "name": "remove reviewer with non-integer categoryId", + "time": 1474189283486, + "name": "get all reviewers without categoryId", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 1.1\n}", - "folder": "f51d9a83-9d4a-fa4d-a3a8-08c9a94a35b5" + "folder": "81516934-d74e-f97d-262f-21d87d5961d1" }, { - "id": "d0457f1e-5957-b83c-f603-aaf45690e622", - "headers": "", + "id": "c28b4a81-8ee7-24ba-fc8b-54b1b3642fab", + "headers": "Authorization: Bearer {{userToken}}\n", "url": "{{url}}/admin/reviewers?categoryId=7", "preRequestScript": null, "pathVariables": {}, @@ -1807,17 +1714,17 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474282217351, - "name": "get all reviewers without Authorization header", + "time": 1474282212758, + "name": "get all reviewers with user token", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "folder": "790ca3b9-d88f-04e9-b65d-fd59442f3394" + "folder": "81516934-d74e-f97d-262f-21d87d5961d1" }, { - "id": "d0e8a5bc-f7c7-268b-5a66-37e90947dabc", + "id": "c3383672-4018-ec1b-2688-515b73987d36", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/copilots", + "url": "{{url}}/admin/reviewers?categoryId=14", "preRequestScript": null, "pathVariables": {}, "method": "DELETE", @@ -1826,77 +1733,58 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474177129491, - "name": "remove copilot with not exist username", + "time": 1474273020582, + "name": "remove reviewer with categoryId in query", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"notexist\"\n}", - "folder": "dcec6b34-9127-b6df-bbd9-da6c35c739f8" + "rawModeData": "{\n \"username\": \"dok_tester\"\n}", + "folder": "f11d599f-4472-bcef-b9e3-7c86ac139e35" }, { - "id": "d7913d8d-6c66-b1cd-62d5-c40393c22661", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/copilots", + "id": "c8075e84-bb8d-7596-ba92-5990705f93bc", + "headers": "Authorization: wrong\nContent-Type: application/json\n", + "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, - "method": "POST", + "method": "DELETE", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474179169639, - "name": "create copilot with empty username", + "time": 1474173283865, + "name": "remove admin without Bearer header", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \" \",\n \"isSoftwareCopilot\": true,\n \"isStudioCopilot\":true\n}", - "folder": "1438537c-a455-8206-0b64-bcb6e98cb447" + "rawModeData": "{\n \"username\": \"dok_tester\"\n}", + "folder": "78aeaf8b-80c8-40df-6ed6-2af5acdbf2ea" }, { - "id": "dcf543f4-41e0-0506-52a1-d9abc07132e2", + "id": "ccc25e86-5365-aaf6-8ce8-9838898142eb", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, - "method": "POST", + "method": "DELETE", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474179220315, - "name": "create copilot with invalid isSoftwareCopilot", - "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", - "responses": [], - "rawModeData": "{\n \"username\": \"notexist\",\n \"isSoftwareCopilot\": \"invalid boolean\",\n \"isStudioCopilot\":true\n}", - "folder": "1438537c-a455-8206-0b64-bcb6e98cb447" - }, - { - "id": "e1dd94fd-2dea-4082-61f8-a551fcf1d55f", - "headers": "Authorization: Bearer wrong\n", - "url": "{{url}}/admin/copilots", - "preRequestScript": null, - "pathVariables": {}, - "method": "GET", - "data": null, - "dataMode": "params", - "tests": null, - "currentHelper": "normal", - "helperAttributes": {}, - "time": 1474176766163, - "name": "get all copilots with wrong Bearer header", + "time": 1474177185914, + "name": "remove copilot with admin token", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "folder": "2c775e97-29a3-c27d-abb5-e5dc6a5e05d9" + "rawModeData": "{\n \"username\": \"dok_tester\"\n}", + "folder": "2afb4105-1932-6ef0-866c-43ecb13c0048" }, { - "id": "e3c87489-0dac-48e0-869b-117743e7fb01", - "headers": "Authorization: Bearer {{userToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/copilots", + "id": "d0a6e94f-3c59-2398-f0f5-a1d54a6f4e15", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, "method": "POST", @@ -1905,57 +1793,57 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474177780363, - "name": "create copilot with user token", + "time": 1474282659872, + "name": "create reviewer with not exist username", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isSoftwareCopilot\": true,\n \"isStudioCopilot\":true\n}", - "folder": "1438537c-a455-8206-0b64-bcb6e98cb447" + "rawModeData": "{\n \"username\": \"notexist\",\n \"categoryId\": 14\n}", + "folder": "7544e9b2-c615-4376-7145-511bb968c906" }, { - "id": "e498adc6-5df6-ea02-491f-de46950eff67", - "headers": "Authorization: wrong\nContent-Type: application/json\n", + "id": "d2bf20ce-e0ed-a347-69dc-577e34dbefd0", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, - "method": "POST", + "method": "DELETE", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474168982704, - "name": "create admin without Bearer header", + "time": 1474173258538, + "name": "remove admin with admin token", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "305f84dd-24a3-cbe7-97f1-7063b14a5f42" + "folder": "78aeaf8b-80c8-40df-6ed6-2af5acdbf2ea" }, { - "id": "e5179ef5-cef4-a08b-9fbf-cd63b4a4066d", + "id": "da88d593-5117-3c1f-f56c-47ac74724c79", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/admins", + "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, - "method": "POST", + "method": "DELETE", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474169674465, - "name": "create admin with empty username", + "time": 1474282491538, + "name": "remove reviewer with empty username", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \" \"\n}", - "folder": "305f84dd-24a3-cbe7-97f1-7063b14a5f42" + "rawModeData": "{\n \"username\": \" \",\n \"categoryId\": 14\n}", + "folder": "f11d599f-4472-bcef-b9e3-7c86ac139e35" }, { - "id": "e61162b5-ccbd-79fc-7daa-ad1e9e71f8db", - "headers": "Authorization: Bearer {{userToken}}\n", + "id": "ddf839fa-733a-056a-8a2c-a1e56d0e9072", + "headers": "Authorization: Bearer wrong\n", "url": "{{url}}/admin/reviewers?categoryId=7", "preRequestScript": null, "pathVariables": {}, @@ -1965,77 +1853,56 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474282212758, - "name": "get all reviewers with user token", - "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", - "responses": [], - "folder": "790ca3b9-d88f-04e9-b65d-fd59442f3394" - }, - { - "id": "e766e9a8-dd56-26b0-5fa7-2e7e876001d7", - "headers": "Authorization: Bearer wrong\nContent-Type: application/json\n", - "url": "{{url}}/admin/admins", - "preRequestScript": null, - "pathVariables": {}, - "method": "DELETE", - "data": [], - "dataMode": "raw", - "tests": null, - "currentHelper": "normal", - "helperAttributes": {}, - "time": 1474173287352, - "name": "remove admin with wrong Bearer header", + "time": 1474282226901, + "name": "get all reviewers with wrong Bearer header", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "4ff79efc-3da3-8c10-cbf9-8a883260cc55" + "folder": "81516934-d74e-f97d-262f-21d87d5961d1" }, { - "id": "e8a850e5-31bf-6c13-0e44-bc4583bca2cb", - "headers": "Authorization: wrong\nContent-Type: application/json\n", - "url": "{{url}}/admin/admins", + "id": "e058d344-3c5d-951a-c86e-ebfeba41bab8", + "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "url": "{{url}}/admin/copilots", "preRequestScript": null, "pathVariables": {}, - "method": "DELETE", + "method": "POST", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474173283865, - "name": "remove admin without Bearer header", + "time": 1474179507223, + "name": "create copilot with isStudioCopilot false", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "4ff79efc-3da3-8c10-cbf9-8a883260cc55" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isSoftwareCopilot\": 1,\n \"isStudioCopilot\":0\n}", + "folder": "8052cbf5-e206-af03-0392-e853f3f06bf4" }, { - "id": "eb8f368e-9c8e-47b7-c70d-1cf7ac89c02c", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", + "id": "e10c59ae-1669-54bd-03bb-4de19d51fb5e", + "headers": "Authorization: wrong\n", "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, - "method": "DELETE", - "data": [], - "dataMode": "raw", + "method": "GET", + "data": null, + "dataMode": "params", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474173533574, - "name": "remove admin with notexist username", + "time": 1474174209799, + "name": "get all admins without Bearer header", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"notexist\"\n}", - "folder": "4ff79efc-3da3-8c10-cbf9-8a883260cc55" + "folder": "2964b89d-893b-aada-2e0e-c4136b920508" }, { - "id": "eeabcbce-4ca9-88ce-ec1a-93e0729bad11", - "headers": "Authorization: wrong\nContent-Type: application/json\n", - "url": "{{url}}/admin/copilots", + "id": "e6b6464b-da41-67ee-c2ca-53b1d5ba417d", + "headers": "Authorization: Bearer wrong\nContent-Type: application/json\n", + "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, "method": "DELETE", @@ -2044,18 +1911,18 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474177113168, - "name": "remove copilot without Bearer header", + "time": 1474189083334, + "name": "remove reviewer with wrong Bearer header", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\"\n}", - "folder": "dcec6b34-9127-b6df-bbd9-da6c35c739f8" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", + "folder": "f11d599f-4472-bcef-b9e3-7c86ac139e35" }, { - "id": "f6e293f3-5650-d73b-36e8-97d587604a4b", + "id": "ebcf31ae-035b-49ac-41d4-fa4484eff6a1", "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/copilots", + "url": "{{url}}/admin/reviewers", "preRequestScript": null, "pathVariables": {}, "method": "POST", @@ -2064,18 +1931,18 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474179290066, - "name": "create copilot with isStudioCopilot/isSoftwareCopilot false", + "time": 1474187872946, + "name": "create reviewer with admin token", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"isStudioCopilot\": false,\n \"isSoftwareCopilot\":false\n}", - "folder": "1438537c-a455-8206-0b64-bcb6e98cb447" + "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", + "folder": "7544e9b2-c615-4376-7145-511bb968c906" }, { - "id": "f88f1d64-7461-652d-f3fb-6c48fa553e61", + "id": "ef7fd1f5-a302-b7b6-a772-a43eb3b82062", "headers": "Authorization: Bearer {{adminToken}}\n", - "url": "{{url}}/admin/reviewers?categoryId=7", + "url": "{{url}}/admin/reviewers?categoryId=wrong", "preRequestScript": null, "pathVariables": {}, "method": "GET", @@ -2084,76 +1951,75 @@ "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474268286128, - "name": "get all reviewers with admin token", + "time": 1474184004438, + "name": "get all reviewers with invalid categoryId", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "folder": "790ca3b9-d88f-04e9-b65d-fd59442f3394" + "folder": "81516934-d74e-f97d-262f-21d87d5961d1" }, { - "id": "f8efe766-a322-ee21-b4f5-78d78642af19", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers", + "id": "f6c44b3f-570d-e48f-3b7e-8419a9ebe9b6", + "headers": "Content-Type: application/json\n", + "url": "{{url}}/auth", "preRequestScript": null, "pathVariables": {}, "method": "POST", "data": [], "dataMode": "raw", - "tests": null, + "version": 2, + "tests": "var authResponse = JSON.parse(responseBody);\npostman.setEnvironmentVariable(\"authToken\", authResponse.token);\ntests[\"Status code is 200\"] = responseCode.code === 200;\nvar jsonData = JSON.parse(responseBody);\ntests[\"A valid token is returned\"] = !!jsonData.token;", "currentHelper": "normal", "helperAttributes": {}, - "time": 1474187901930, - "name": "create reviewer without username", + "time": 1474159263289, + "name": "Login as admin user", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{}", - "folder": "ff6b7b38-7532-5c03-26db-c68f88696eb9" + "rawModeData": "{\n \"username\": \"heffan\", \n \"password\": \"password\"\n}", + "folder": "fedff379-68f7-3322-d2e9-29471d82cc60" }, { - "id": "f901106d-47f8-080c-d56b-7badc5774481", - "headers": "Content-Type: application/json\n", - "url": "{{url}}/auth", + "id": "f784d0d8-8645-7633-91c6-54ec81aa95ff", + "headers": "Authorization: Bearer {{adminToken}}\n", + "url": "{{url}}/admin/reviewers?categoryId=1.1", "preRequestScript": null, "pathVariables": {}, - "method": "POST", - "data": [], - "dataMode": "raw", - "version": 2, - "tests": "var authResponse = JSON.parse(responseBody);\npostman.setEnvironmentVariable(\"authToken\", authResponse.token);\ntests[\"Status code is 200\"] = responseCode.code === 200;\nvar jsonData = JSON.parse(responseBody);\ntests[\"A valid token is returned\"] = !!jsonData.token;", + "method": "GET", + "data": null, + "dataMode": "params", + "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474159245944, - "name": "Log in as ordinary user", + "time": 1474188155542, + "name": "get all reviewers with non-integer categoryId", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"user\", \n \"password\": \"password\"\n}", - "folder": "14f4dd06-76e0-ca22-602f-0ad3974aa4fa" + "folder": "81516934-d74e-f97d-262f-21d87d5961d1" }, { - "id": "f9a913ac-f3b4-3cba-ad0d-41265aa5904b", + "id": "fc7d7ac4-d1e1-a441-6717-ecb50b9ad7f6", "headers": "Authorization: Bearer {{userToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/reviewers", + "url": "{{url}}/admin/admins", "preRequestScript": null, "pathVariables": {}, - "method": "DELETE", + "method": "POST", "data": [], "dataMode": "raw", "tests": null, "currentHelper": "normal", "helperAttributes": {}, - "time": 1474189053598, - "name": "remove reviewer with user token", + "time": 1474172375481, + "name": "create admin with user token", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{\n \"username\": \"dok_tester\",\n \"categoryId\": 14\n}", - "folder": "f51d9a83-9d4a-fa4d-a3a8-08c9a94a35b5" + "rawModeData": "{\n \"username\": \"dok_tester\"\n}", + "folder": "142d5b1b-b304-bced-c1f3-b59e8187d2aa" }, { - "id": "fbdd77d2-d138-3a05-a543-d5302daeca50", + "id": "fe0a03f9-4969-651a-5eed-01de9398498e", "headers": "Authorization: wrong\n", "url": "{{url}}/admin/reviewers?categoryId=7", "preRequestScript": null, @@ -2167,29 +2033,9 @@ "time": 1474282221279, "name": "get all reviewers without Bearer header", "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", - "responses": [], - "folder": "790ca3b9-d88f-04e9-b65d-fd59442f3394" - }, - { - "id": "ff7618ed-fc54-1b81-6129-8df5ac4e67a9", - "headers": "Authorization: Bearer {{adminToken}}\nContent-Type: application/json\n", - "url": "{{url}}/admin/copilots", - "preRequestScript": null, - "pathVariables": {}, - "method": "DELETE", - "data": [], - "dataMode": "raw", - "tests": null, - "currentHelper": "normal", - "helperAttributes": {}, - "time": 1474177119734, - "name": "remove copilot without username", - "description": "", - "collectionId": "ec27457a-c67c-97cc-a855-d1b82e4f952a", + "collectionId": "b4745ce1-c766-7823-c9cf-fa73e6b9cb2b", "responses": [], - "rawModeData": "{}", - "folder": "dcec6b34-9127-b6df-bbd9-da6c35c739f8" + "folder": "81516934-d74e-f97d-262f-21d87d5961d1" } ] } \ No newline at end of file From 445be50b7aac2abe76aba1d404e09914299e9bb7 Mon Sep 17 00:00:00 2001 From: Vyacheslav V Sokolov Date: Fri, 16 Jun 2017 08:15:33 +0700 Subject: [PATCH 3/4] Fixed the case with a challenge that doesn't have eligibility --- actions/challenges.js | 20 +++++++++++++++----- db_scripts/test_eligibility.insert.sql | 1 - 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/actions/challenges.js b/actions/challenges.js index f47bbe7a6..3b17370ca 100755 --- a/actions/challenges.js +++ b/actions/challenges.js @@ -867,22 +867,32 @@ function validateChallenge(api, connection, dbConnectionMap, challengeId, isStud challengeId: challengeId, user_id: userId }; - api.dataAccess.executeQuery('get_challenge_accessibility_and_groups', sqlParams, dbConnectionMap, cb); + async.parallel({ + accessibility: function (cbx) { + api.dataAccess.executeQuery('get_challenge_accessibility_and_groups', sqlParams, dbConnectionMap, cbx); + }, + exists: function (cbx) { + api.dataAccess.executeQuery('check_challenge_exists', sqlParams, dbConnectionMap, cbx); + } + }, cb); }, function (res, cb) { - // If the record with this callengeId doesn't exist in contest_eligibility table + // If the record with this callengeId doesn't exist in 'project' table // or there's a studio/software mismatch - if (res.length === 0 || Boolean(res[0].is_studio) !== isStudio) { + if (res.exists.length === 0 || Boolean(res.exists[0].is_studio) !== isStudio) { cb(new NotFoundError("Challenge not found.")); return; } // If there's no corresponding record in group_contest_eligibility // or the user is an admin - if (_.isNull(res[0].challenge_group_ind) || _.isUndefined(res[0].challenge_group_ind) || connection.caller.accessLevel === 'admin') { + if (res.accessibility.length === 0 + || _.isNull(res.accessibility[0].challenge_group_ind) + || _.isUndefined(res.accessibility[0].challenge_group_ind) + || connection.caller.accessLevel === 'admin') { cb(); return; } error = false; - async.some(res, function (record, cbx) { + async.some(res.accessibility, function (record, cbx) { if (record.challenge_group_ind === 0) { cbx(!(_.isNull(record.user_group_xref_found) || _.isUndefined(record.user_group_xref_found))); } else { diff --git a/db_scripts/test_eligibility.insert.sql b/db_scripts/test_eligibility.insert.sql index 05d827c15..020fd832e 100644 --- a/db_scripts/test_eligibility.insert.sql +++ b/db_scripts/test_eligibility.insert.sql @@ -114,7 +114,6 @@ INSERT INTO review_item_comment (review_item_comment_id, resource_id, review_ite DATABASE common_oltp; -INSERT INTO contest_eligibility (contest_eligibility_id, contest_id, is_studio) VALUES (1110001, 2220001, 0); INSERT INTO contest_eligibility (contest_eligibility_id, contest_id, is_studio) VALUES (1110002, 2220002, 0); INSERT INTO contest_eligibility (contest_eligibility_id, contest_id, is_studio) VALUES (1110003, 2220003, 0); INSERT INTO contest_eligibility (contest_eligibility_id, contest_id, is_studio) VALUES (1110004, 2220004, 0); From 16be372f51e13af663a17b69d12ac2c39cfb7ae0 Mon Sep 17 00:00:00 2001 From: Vyacheslav V Sokolov Date: Mon, 19 Jun 2017 02:42:34 +0700 Subject: [PATCH 4/4] Shared the eligibility verification with challengeRegistration. The eligibility check routine is now in challengeHelper and can be added anywhere by a couple of simple lines of code. --- actions/challengeRegistration.js | 39 +++-- actions/challenges.js | 47 +---- db_scripts/test_eligibility.delete.sql | 17 ++ db_scripts/test_eligibility.insert.sql | 89 +++++++++- ...e-Improve Challenge Visibility Control.doc | Bin 49664 -> 52736 bytes initializers/challengeHelper.js | 77 ++++++++- queries/challenge_registration_validations | 10 -- ...Visibility_Control.postman_collection.json | 160 ++++++++++++++++++ 8 files changed, 365 insertions(+), 74 deletions(-) diff --git a/actions/challengeRegistration.js b/actions/challengeRegistration.js index f50077b66..9424951ef 100644 --- a/actions/challengeRegistration.js +++ b/actions/challengeRegistration.js @@ -3,8 +3,8 @@ * * The APIs to register a challenge (studio category or software category) for the current logged-in user. * - * @version 1.7 - * @author ecnu_haozi, xjtufreeman, bugbuka, flytoj2ee, muzehyun + * @version 1.8 + * @author ecnu_haozi, xjtufreeman, bugbuka, flytoj2ee, muzehyun, GFalcon * * changes in 1.1: * Combine Challenge Registration API(BUGR-11058) @@ -27,6 +27,9 @@ * * changes in 1.7: * Avoid reliability info set if there is none for new user. + * + * changes in 1.8: + * Added the verification of the challenge's eligibility */ "use strict"; @@ -880,19 +883,31 @@ exports.registerChallenge = { } else { api.helper.checkUserActivated(connection.caller.handle, api, connection.dbConnectionMap, function (err, inactive) { var fail = err || inactive; - if (fail) cb(fail); - else api.dataAccess.executeQuery('check_challenge_exists', {challengeId: challengeId}, connection.dbConnectionMap, cb); + if (fail) { + cb(fail); + } else { + api.dataAccess.executeQuery('check_challenge_exists', {challengeId: challengeId}, connection.dbConnectionMap, cb); + } }, "You must activate your account in order to participate. Please check your e-mail in order to complete the activation process, or contact support@topcoder.com if you did not receive an e-mail."); } - }, function (result, cb) { - if (result.length > 0) { - if (result[0].is_studio) { - registerStudioChallengeAction(api, connection, next); - } else { - registerSoftwareChallengeAction(api, connection, next); - } - } else { + }, function(result, cb) { + // If the challenge is not found in the tcs_catalog:project table, + if (result.length === 0) { + // Do nothing, do not register cb(); + return; + } + var isStudio = result[0].isStudio !== 0; + api.challengeHelper.checkUserChallengeEligibility(connection, challengeId, function (err) { + cb(err, isStudio); + }); + }, function (isStudio, cb) { + if (_.isUndefined(isStudio)) { + cb(); + } else if (isStudio) { + registerStudioChallengeAction(api, connection, next); + } else { + registerSoftwareChallengeAction(api, connection, next); } } ], function (err) { diff --git a/actions/challenges.js b/actions/challenges.js index 3b17370ca..53266e7a8 100755 --- a/actions/challenges.js +++ b/actions/challenges.js @@ -867,55 +867,16 @@ function validateChallenge(api, connection, dbConnectionMap, challengeId, isStud challengeId: challengeId, user_id: userId }; - async.parallel({ - accessibility: function (cbx) { - api.dataAccess.executeQuery('get_challenge_accessibility_and_groups', sqlParams, dbConnectionMap, cbx); - }, - exists: function (cbx) { - api.dataAccess.executeQuery('check_challenge_exists', sqlParams, dbConnectionMap, cbx); - } - }, cb); + api.dataAccess.executeQuery('check_challenge_exists', sqlParams, dbConnectionMap, cb); }, function (res, cb) { // If the record with this callengeId doesn't exist in 'project' table // or there's a studio/software mismatch - if (res.exists.length === 0 || Boolean(res.exists[0].is_studio) !== isStudio) { + if (res.length === 0 || Boolean(res[0].is_studio) !== isStudio) { cb(new NotFoundError("Challenge not found.")); return; } - // If there's no corresponding record in group_contest_eligibility - // or the user is an admin - if (res.accessibility.length === 0 - || _.isNull(res.accessibility[0].challenge_group_ind) - || _.isUndefined(res.accessibility[0].challenge_group_ind) - || connection.caller.accessLevel === 'admin') { - cb(); - return; - } - error = false; - async.some(res.accessibility, function (record, cbx) { - if (record.challenge_group_ind === 0) { - cbx(!(_.isNull(record.user_group_xref_found) || _.isUndefined(record.user_group_xref_found))); - } else { - api.v3client.isUserInGroup(connection, userId, record.group_id, function (err, result) { - if (err) { - error = err; - cbx(true); - } else { - cbx(result); - } - }); - } - }, function (eligible) { - if (error) { - cb(error); - } else if (eligible) { - cb(); - } else if (connection.caller.accessLevel === "anon") { - cb(new UnauthorizedError()); - } else { - cb(new ForbiddenError()); - } - }); + // Check the eligibility + api.challengeHelper.checkUserChallengeEligibility(connection, challengeId, cb); } ], callback); } diff --git a/db_scripts/test_eligibility.delete.sql b/db_scripts/test_eligibility.delete.sql index c6a88def0..5f77f6c44 100644 --- a/db_scripts/test_eligibility.delete.sql +++ b/db_scripts/test_eligibility.delete.sql @@ -5,8 +5,25 @@ DELETE FROM security_groups WHERE group_id > 3330000 AND group_id < 3330100; DELETE FROM group_contest_eligibility WHERE contest_eligibility_id > 1110000 AND contest_eligibility_id < 1110100; DELETE FROM contest_eligibility WHERE contest_eligibility_id > 1110000 AND contest_eligibility_id < 1110100; +DATABASE informixoltp; + +-- UPDATE coder SET comp_country_code = NULL WHERE user_id = 132458; + DATABASE tcs_catalog; +DELETE FROM notification WHERE project_id > 1110000 AND project_id < 1110100; +DELETE FROM project_result WHERE project_id > 1110000 AND project_id < 1110100; +DELETE FROM project_user_audit WHERE project_id > 1110000 AND project_id < 1110100; +DELETE FROM component_inquiry WHERE project_id > 1110000 AND project_id < 1110100; +DELETE FROM resource_info WHERE resource_id IN (SELECT resource_id FROM resource WHERE project_id > 1110000 AND project_id < 1110100); +DELETE FROM resource WHERE project_id > 1110000 AND project_id < 1110100; + +DELETE FROM project_info WHERE project_id > 1110000 AND project_id < 1110100; +DELETE FROM comp_versions WHERE component_id = 3330333; +DELETE FROM comp_catalog WHERE component_id = 3330333; +DELETE FROM project_phase WHERE project_id > 1110000 AND project_id < 1110100; +DELETE FROM project WHERE project_id > 1110000 AND project_id < 1110100; + DELETE FROM review_item_comment WHERE review_item_comment_id > 7770000 AND review_item_id < 7770100; DELETE FROM review_item WHERE review_item_id > 5550000 AND review_item_id < 5550100; DELETE FROM review WHERE review_id > 4440000 AND review_id < 4440100; diff --git a/db_scripts/test_eligibility.insert.sql b/db_scripts/test_eligibility.insert.sql index 020fd832e..8bb746502 100644 --- a/db_scripts/test_eligibility.insert.sql +++ b/db_scripts/test_eligibility.insert.sql @@ -99,7 +99,6 @@ INSERT INTO review_item (review_item_id, review_id, scorecard_question_id, uploa VALUES (5550004, 4440004, 3330333, 9990004, "---", 1, "132456", CURRENT, "132456", CURRENT); INSERT INTO review_item (review_item_id, review_id, scorecard_question_id, upload_id, answer, sort, create_user, create_date, modify_user, modify_date) VALUES (5550005, 4440005, 3330333, 9990005, "---", 1, "132456", CURRENT, "132456", CURRENT); - INSERT INTO review_item_comment (review_item_comment_id, resource_id, review_item_id, comment_type_id, content, sort, create_user, create_date, modify_user, modify_date) VALUES (7770001, 8880001, 5550001, 1, "The current user has the right to view this challenge", 1, "132456", CURRENT, "132456", CURRENT); @@ -111,6 +110,84 @@ INSERT INTO review_item_comment (review_item_comment_id, resource_id, review_ite VALUES (7770004, 8880004, 5550004, 1, "The current user has the right to view this challenge", 1, "132456", CURRENT, "132456", CURRENT); INSERT INTO review_item_comment (review_item_comment_id, resource_id, review_item_id, comment_type_id, content, sort, create_user, create_date, modify_user, modify_date) VALUES (7770005, 8880005, 5550005, 1, "The current user has the right to view this challenge", 1, "132456", CURRENT, "132456", CURRENT); + +INSERT INTO project (project_id, project_status_id, project_category_id, create_user, create_date, modify_user, modify_date) + VALUES (1110001, 1, 14, "132456", CURRENT, "132456", CURRENT); +INSERT INTO project (project_id, project_status_id, project_category_id, create_user, create_date, modify_user, modify_date) + VALUES (1110002, 1, 14, "132456", CURRENT, "132456", CURRENT); +INSERT INTO project (project_id, project_status_id, project_category_id, create_user, create_date, modify_user, modify_date) + VALUES (1110003, 1, 14, "132456", CURRENT, "132456", CURRENT); +INSERT INTO project (project_id, project_status_id, project_category_id, create_user, create_date, modify_user, modify_date) + VALUES (1110004, 1, 14, "132456", CURRENT, "132456", CURRENT); +INSERT INTO project (project_id, project_status_id, project_category_id, create_user, create_date, modify_user, modify_date) + VALUES (1110005, 1, 14, "132456", CURRENT, "132456", CURRENT); + +INSERT INTO project_phase (project_phase_id, project_id, phase_type_id, phase_status_id, scheduled_start_time, scheduled_end_time, duration, create_user, create_date, modify_user, modify_date) + VALUES (2220001, 1110001, 1, 2, CURRENT, CURRENT, 1, "132456", CURRENT, "132456", CURRENT); +INSERT INTO project_phase (project_phase_id, project_id, phase_type_id, phase_status_id, scheduled_start_time, scheduled_end_time, duration, create_user, create_date, modify_user, modify_date) + VALUES (2220002, 1110002, 1, 2, CURRENT, CURRENT, 1, "132456", CURRENT, "132456", CURRENT); +INSERT INTO project_phase (project_phase_id, project_id, phase_type_id, phase_status_id, scheduled_start_time, scheduled_end_time, duration, create_user, create_date, modify_user, modify_date) + VALUES (2220003, 1110003, 1, 2, CURRENT, CURRENT, 1, "132456", CURRENT, "132456", CURRENT); +INSERT INTO project_phase (project_phase_id, project_id, phase_type_id, phase_status_id, scheduled_start_time, scheduled_end_time, duration, create_user, create_date, modify_user, modify_date) + VALUES (2220004, 1110004, 1, 2, CURRENT, CURRENT, 1, "132456", CURRENT, "132456", CURRENT); +INSERT INTO project_phase (project_phase_id, project_id, phase_type_id, phase_status_id, scheduled_start_time, scheduled_end_time, duration, create_user, create_date, modify_user, modify_date) + VALUES (2220005, 1110005, 1, 2, CURRENT, CURRENT, 1, "132456", CURRENT, "132456", CURRENT); + +INSERT INTO comp_catalog (component_id, current_version, component_name, status_id, modify_date, public_ind) + VALUES (3330333, 1, "---", 1, CURRENT, 0); + +INSERT INTO comp_versions (comp_vers_id, component_id, version, version_text, phase_id, phase_time, price, modify_date) + VALUES (4440444, 3330333, 1, "1", 113, CURRENT, 1000, CURRENT); + +INSERT INTO project_info (project_id, project_info_type_id, value, create_user, create_date, modify_user, modify_date) + VALUES (1110001, 2, "3330333", "132456", CURRENT, "132456", CURRENT); +INSERT INTO project_info (project_id, project_info_type_id, value, create_user, create_date, modify_user, modify_date) + VALUES (1110002, 2, "3330333", "132456", CURRENT, "132456", CURRENT); +INSERT INTO project_info (project_id, project_info_type_id, value, create_user, create_date, modify_user, modify_date) + VALUES (1110003, 2, "3330333", "132456", CURRENT, "132456", CURRENT); +INSERT INTO project_info (project_id, project_info_type_id, value, create_user, create_date, modify_user, modify_date) + VALUES (1110004, 2, "3330333", "132456", CURRENT, "132456", CURRENT); +INSERT INTO project_info (project_id, project_info_type_id, value, create_user, create_date, modify_user, modify_date) + VALUES (1110005, 2, "3330333", "132456", CURRENT, "132456", CURRENT); + +INSERT INTO project_info (project_id, project_info_type_id, value, create_user, create_date, modify_user, modify_date) + VALUES (1110001, 6, 3330333, "Not private", CURRENT, "132456", CURRENT); +INSERT INTO project_info (project_id, project_info_type_id, value, create_user, create_date, modify_user, modify_date) + VALUES (1110002, 6, 3330333, "Old logic - access allowed", CURRENT, "132456", CURRENT); +INSERT INTO project_info (project_id, project_info_type_id, value, create_user, create_date, modify_user, modify_date) + VALUES (1110003, 6, 3330333, "Old logic - access denied", CURRENT, "132456", CURRENT); +INSERT INTO project_info (project_id, project_info_type_id, value, create_user, create_date, modify_user, modify_date) + VALUES (1110004, 6, 3330333, "New logic - access allowed", CURRENT, "132456", CURRENT); +INSERT INTO project_info (project_id, project_info_type_id, value, create_user, create_date, modify_user, modify_date) + VALUES (1110005, 6, 3330333, "New logic - access denied", CURRENT, "132456", CURRENT); + +INSERT INTO project_info (project_id, project_info_type_id, value, create_user, create_date, modify_user, modify_date) + VALUES (1110001, 79, "---", "132456", CURRENT, "132456", CURRENT); +INSERT INTO project_info (project_id, project_info_type_id, value, create_user, create_date, modify_user, modify_date) + VALUES (1110002, 79, "---", "132456", CURRENT, "132456", CURRENT); +INSERT INTO project_info (project_id, project_info_type_id, value, create_user, create_date, modify_user, modify_date) + VALUES (1110003, 79, "---", "132456", CURRENT, "132456", CURRENT); +INSERT INTO project_info (project_id, project_info_type_id, value, create_user, create_date, modify_user, modify_date) + VALUES (1110004, 79, "---", "132456", CURRENT, "132456", CURRENT); +INSERT INTO project_info (project_id, project_info_type_id, value, create_user, create_date, modify_user, modify_date) + VALUES (1110005, 79, "---", "132456", CURRENT, "132456", CURRENT); + +INSERT INTO project_phase (project_phase_id, project_id, phase_type_id, phase_status_id, scheduled_start_time, scheduled_end_time, duration, create_user, create_date, modify_user, modify_date) + VALUES (3330001, 1110001, 2, 2, CURRENT, CURRENT, 1, "132456", CURRENT, "132456", CURRENT); +INSERT INTO project_phase (project_phase_id, project_id, phase_type_id, phase_status_id, scheduled_start_time, scheduled_end_time, duration, create_user, create_date, modify_user, modify_date) + VALUES (3330002, 1110002, 2, 2, CURRENT, CURRENT, 1, "132456", CURRENT, "132456", CURRENT); +INSERT INTO project_phase (project_phase_id, project_id, phase_type_id, phase_status_id, scheduled_start_time, scheduled_end_time, duration, create_user, create_date, modify_user, modify_date) + VALUES (3330003, 1110003, 2, 2, CURRENT, CURRENT, 1, "132456", CURRENT, "132456", CURRENT); +INSERT INTO project_phase (project_phase_id, project_id, phase_type_id, phase_status_id, scheduled_start_time, scheduled_end_time, duration, create_user, create_date, modify_user, modify_date) + VALUES (3330004, 1110004, 2, 2, CURRENT, CURRENT, 1, "132456", CURRENT, "132456", CURRENT); +INSERT INTO project_phase (project_phase_id, project_id, phase_type_id, phase_status_id, scheduled_start_time, scheduled_end_time, duration, create_user, create_date, modify_user, modify_date) + VALUES (3330005, 1110005, 2, 2, CURRENT, CURRENT, 1, "132456", CURRENT, "132456", CURRENT); + +DATABASE informixoltp; + +UPDATE coder SET comp_country_code = ( + SELECT MIN(country_code) FROM country WHERE country_name = "United States" +) WHERE coder_id = 132458; DATABASE common_oltp; @@ -130,3 +207,13 @@ INSERT INTO group_contest_eligibility (contest_eligibility_id, group_id) VALUES INSERT INTO group_contest_eligibility (contest_eligibility_id, group_id) VALUES (1110003, 3330002); INSERT INTO group_contest_eligibility (contest_eligibility_id, group_id) VALUES (1110004, 3330003); INSERT INTO group_contest_eligibility (contest_eligibility_id, group_id) VALUES (1110005, 3330004); + +INSERT INTO contest_eligibility (contest_eligibility_id, contest_id, is_studio) VALUES (1110012, 1110002, 0); +INSERT INTO contest_eligibility (contest_eligibility_id, contest_id, is_studio) VALUES (1110013, 1110003, 0); +INSERT INTO contest_eligibility (contest_eligibility_id, contest_id, is_studio) VALUES (1110014, 1110004, 0); +INSERT INTO contest_eligibility (contest_eligibility_id, contest_id, is_studio) VALUES (1110015, 1110005, 0); + +INSERT INTO group_contest_eligibility (contest_eligibility_id, group_id) VALUES (1110012, 3330001); +INSERT INTO group_contest_eligibility (contest_eligibility_id, group_id) VALUES (1110013, 3330002); +INSERT INTO group_contest_eligibility (contest_eligibility_id, group_id) VALUES (1110014, 3330003); +INSERT INTO group_contest_eligibility (contest_eligibility_id, group_id) VALUES (1110015, 3330004); diff --git a/docs/Verification_Guide-Improve Challenge Visibility Control.doc b/docs/Verification_Guide-Improve Challenge Visibility Control.doc index 5385983df3f5a6c74c77c93f4fa89de8b359be7d..1c2913aaec56e9f7acc508b92ae08a944ff0a3e0 100644 GIT binary patch delta 3948 zcmaKv4Nz3q701upU2q3k5M_}C#03{wkl?~DXu$aWfz+x|N7GaV)%s4Gk3_EtLHJ=QpS`1&eJ9xHZDhD~zx!>X7Q%HAZg>#)FnlGe<^L>Yz_ojt$YT66jvM?-XEJmM0 zbEyEMT|_TY32js@DR@*4rP5Sf4q#XFcKUXI$8i3fke(2*-+(y_A~Ko|q$m0XU^CRXAT!?FCw*RhVRd+KjS} zs_P_u+`8EnIJZFCmKE!l@sGbgKop4Pag=}eY)}a3@ldMc1%Xj<*+5IaR0&Vm+2^1#Q3rF;lpC0n!TOmeVF|gbLb*ZBwS+ zo5Lxujfpdv&9Ic9%a40k&=%NULM=0?o*{0}eDx`tP@|m3RY#84pte@Xnbp-w5`V8Y zKIWU&mf<<;(T4P_5PoL#U=x+`om!)-zj{aTvj#HI3fvmL>rYpoFV)e^EDqUVG(OoO zX>A@qsD9Ni2|gA4gPK`mpKjw(7x;Qj@-r(u6IG7k=HrsSl%tzls2FX?M3p1X>Ts!$ zm+Y}ezT)x8!_W$$3>ol?g~vt&aok=LKm3t@N}f+!W_1G0>W(czz7RR--(zia${S-w z6r&Zi!?RwG=hgetU1#@HDl;%7#3vu!G^11Hs4f$bug1*X$S^Yuk3x4Xnd=<0I)Gw& z6?Pel3{$#Lj*_eu`IYXJs{`w{cZCM$ zW76cgCGguqrF?AHJTBT57VLgPsplDa{L|vGA+qY$1Cg*~1kT{f;a)5T14>{}2vmqkfJHSp*37l+fn9NxX7OrRrO}G|8bRC37 z5`_UL=mDdmh?2*lCTIf>xw~OJ>l!V2(KrNRK`J;6YClQ8R`cB`chmXvk9Mjz!)b4wstTtxJ>_MG(`r3ECy(d?*MJj( za}IQYt8wToxCX2cg+!19l0iCH2MRz1*b26TI?xI(fDgb$&`zCuuY=gIJIVrUN;H<;1?Hevr^0^?Sa( z-()?uK?KrmoIT9FzmQy4=n}r@QQ(~HP+FR;LzF^^^iuNX!X5Kk{3n zCkpb|#M@I27axf>%1flbmB0z=Koe*N9U$9Av!4_1Oo-~@G`2{eNaP>ds_1XO|#z(pYE(q(W3^nyNc1Kb2Q zoM)-P;lMJQi_AW70Gvoe!=M@52M+<^6xVbLyj>K1A@6`%67N^at}kLU;}s=$jfF4u;Bfs6dVDAz=HRRiNFdHK@undrJx=(fG%(u^n$*ORR}0D zH^CR+pI~$*gc5{-a3F8A|Ne5A@0Zlye*+iwQ|I}1YN4ZtaW&SZWL> z=%whS=%eVN=%C17jg_<8mhz=$gL0WaK4s#;=7`91-bEtm8Q(%HztL)nJnn1ym2aVu zr@3}U1!*Z@qGlxCdbJj9o<+O1=89%b4I)`%d%$%rBmcO?x_q=Kt|+Z2tf;FftEj4| zsi>%^r>Lf=rHG`6qX=VzM;N0$!YHCBf;e+BFFU=TKWU3#%NYkxZ;4P^@jhzgSI$K7 zAAc9hIj)lLhl*T^?1b#j8KM`W6QU2I4WbFMt7JFH zF2e3nH;rr-*(9<#il=%e;68?Goiy6JQG7Q=8P<3O*a~D*Tm%uBsF%Rc=nTB)w1KxB zi3sZP4eFoyU#CrM$hpS7@5Tk;uTPjoSy&`pUtr;%ypzcLUC~tm^8YUiL<2L31r{(7 zSb^-Mdf#Rb`4$fP77q9p>U<0Pd<(Tc1r6=RKY*Vh)+P>k_sU4pyZ?(~W?h>PMk&Kg c2K+x#l(uvCw8~-Ef8KK{N|9^F`>$*M2WNJX1ONa4 delta 2417 zcmaLZYfMvT7zgm@w6%6z1}f#E$o*zTshEt4V#t zf{A@&!q^&A@|9 zD|KeomRGB23eD`7AM85095R#$SD2n3G*6~p4-*q^lauShmHD3p7Rrd}Z9S%bCx)!T zQtUvV1Md+Ws9Utqv4kiDmwRU^Q5KGvB8l*%$T+SvSd5ofV0Cdg_;sQ|bSL72jQEpY zn^S`mgV0*7@5YCnQ@APF;hK$8voY*yEG`ERWDYTxM^L;z)f4dc;6u>HSN%M3MTuys?@3){TLRj78bGuSq&`N6Mlox>UA@$S zmyX^JJgHq?dV726yu3;SP1#5#d%L}z?8oU#RaJS-Q9FNh#8;D4%q?}{6+457j)7k= zCLXfD0h&-m6!ef2hSG&x$b&6#01m4s0TYBFBNna zjb?ZV127DuAocwOp21G6bupAcDcIm3d;#@v6FT8OjKLFdL6WXR2Xw=H6XqR!ApnBF zWU3&FMk5x?V1WdkwQad%D$K!0{S^RAreRAK@ z|5$=G@+E1I4jCXnSmUGPs#5ri;;xHM-AFW7Uf(h(q;oXD$T+J>R_4^X*GLO|EmJW-3#vQYum^Q7TX>PAW|*ObSa1YAl>nFJ!2PT9Xw1RE^j$ zUn)zgN-9dKNvcSyN2*4uMXE%qLyAHQqGP%k(x;0-5+`Yslu5dJqBym6KYOXJJmhdy ze&E2befVLkD?hzx=FfCSHeT`JwiajJbE)WU56PfpPckQ2lbj8}OuQso5-W+5#7N>J zv5~k)Oe7)_4~fPpI0JU*jALu_Am3{U=RN0Kd6~}O?1Ef`DC@T1_ma41(p9TM)1|ow@2(a7q64 p>Fk{n{NyE0&y$X$u5@zs} next The callback that will receive an error + * if the user is not eligible + * + * @since 1.5 + */ + checkUserChallengeEligibility: function (connection, challengeId, next) { + // Admins can access any challenge + if (connection.caller.accessLevel === 'admin') { + next(); + return; + } + // Query the accessibility information + var userId = (connection.caller.userId || 0); + api.dataAccess.executeQuery('get_challenge_accessibility_and_groups', { + challengeId: challengeId, + user_id: userId + }, connection.dbConnectionMap, function (err, res) { + if (err) { + next(err); + return; + } + // If there's no corresponding record in group_contest_eligibility + // then the challenge is available to all users + if (res.length === 0 + || _.isNull(res[0].challenge_group_ind) + || _.isUndefined(res[0].challenge_group_ind)) { + next(); + return; + } + var error = false; + // Look at the groups + async.some(res, function (record, cbx) { + // Old challenges: check by looking up in common_oltp:user_group_xref + if (record.challenge_group_ind === 0) { + cbx(!(_.isNull(record.user_group_xref_found) || _.isUndefined(record.user_group_xref_found))); + } else { + // New challenges: query the V3 API + api.v3client.isUserInGroup(connection, userId, record.group_id, function (err, result) { + if (err) { + error = err; + cbx(true); + } else { + cbx(result); + } + }); + } + }, function (eligible) { + if (error) { + next(error); + } else if (eligible) { + next(); + } else if (connection.caller.accessLevel === "anon") { + next(new UnauthorizedError()); + } else { + next(new ForbiddenError()); + } + }); + }); } - }; next(); diff --git a/queries/challenge_registration_validations b/queries/challenge_registration_validations index 1b20283f4..4bd4a63de 100644 --- a/queries/challenge_registration_validations +++ b/queries/challenge_registration_validations @@ -4,8 +4,6 @@ select (pp_reg_open.project_id IS NOT NULL) as reg_open, (r.project_id IS NOT NULL) as user_registered, (us.user_id IS NOT NULL) as user_suspended, - (ce.contest_eligibility_id IS NULL) as no_elgibility_req, - (ugx.login_id IS NOT NULL) as user_in_eligible_group, (uax.user_id IS NOT NULL OR coder.coder_id IS NOT NULL) as user_country_banned, (coder2.comp_country_code IS NULL OR coder2.comp_country_code = '') as comp_country_is_null, (cop.copilot_profile_id IS NOT NULL) as user_is_copilot, @@ -28,14 +26,6 @@ left join on us.user_id = @userId@ and us.user_status_type_id = 1 and us.user_status_id = 3 --- Check if user meets eligibility requirements -left outer join ( - contest_eligibility ce join ( - group_contest_eligibility gce left outer join user_group_xref ugx - on ugx.group_id = gce.group_id and ugx.login_id = @userId@ - ) - on ce.contest_eligibility_id = gce.contest_eligibility_id -) on p.project_id = ce.contest_id -- Check user's country left outer join ( informixoltp:user_address_xref uax join ( diff --git a/test/postman/New_Challenge_Visibility_Control.postman_collection.json b/test/postman/New_Challenge_Visibility_Control.postman_collection.json index 521f5e6a2..7dadfd3d1 100644 --- a/test/postman/New_Challenge_Visibility_Control.postman_collection.json +++ b/test/postman/New_Challenge_Visibility_Control.postman_collection.json @@ -17,6 +17,19 @@ ], "owner": "316251" }, + { + "id": "cfbf928f-56b8-9813-f8f3-4ac4e342d965", + "name": "Register for challenges", + "description": "", + "order": [ + "4b64d85a-4c08-8ec2-9c3f-50605bd2e09e", + "5224f722-9f4f-07bb-58e7-351512cc66ea", + "60ae89de-4eb1-c0aa-b866-b28b52436e89", + "843d6759-0cc0-a0c6-9fde-60f893f56eac", + "46cf305a-8251-66aa-391c-46def82773a1" + ], + "owner": "316251" + }, { "id": "0eeb693c-c6b6-e23b-156d-cff5f21dbb27", "name": "login", @@ -62,6 +75,124 @@ "responses": [], "folder": "712ffa63-a959-e4a3-6af9-84d4f236b2f3" }, + { + "id": "46cf305a-8251-66aa-391c-46def82773a1", + "headers": "Authorization: Bearer {{authToken}}\n", + "headerData": [ + { + "key": "Authorization", + "value": "Bearer {{authToken}}", + "description": "", + "enabled": true + } + ], + "url": "{{url}}/challenges/1110005/register", + "queryParams": [], + "preRequestScript": null, + "pathVariables": {}, + "pathVariableData": [], + "method": "POST", + "data": null, + "dataMode": "params", + "version": 2, + "tests": null, + "currentHelper": "normal", + "helperAttributes": {}, + "time": 1497813578982, + "name": "New logic, access denied", + "description": "", + "collectionId": "ba962be9-0d58-f187-8809-008a39bc2240", + "responses": [] + }, + { + "id": "4b64d85a-4c08-8ec2-9c3f-50605bd2e09e", + "headers": "Authorization: Bearer {{authToken}}\n", + "headerData": [ + { + "key": "Authorization", + "value": "Bearer {{authToken}}", + "description": "", + "enabled": true + } + ], + "url": "{{url}}/challenges/1110001/register", + "queryParams": [], + "pathVariables": {}, + "pathVariableData": [], + "preRequestScript": null, + "method": "POST", + "collectionId": "ba962be9-0d58-f187-8809-008a39bc2240", + "data": null, + "dataMode": "params", + "name": "No groups (challenge is not private)", + "description": "", + "descriptionFormat": "html", + "time": 1497813014785, + "version": 2, + "responses": [], + "tests": null, + "currentHelper": "normal", + "helperAttributes": {}, + "folder": "cfbf928f-56b8-9813-f8f3-4ac4e342d965" + }, + { + "id": "5224f722-9f4f-07bb-58e7-351512cc66ea", + "headers": "Authorization: Bearer {{authToken}}\n", + "headerData": [ + { + "key": "Authorization", + "value": "Bearer {{authToken}}", + "description": "", + "enabled": true + } + ], + "url": "{{url}}/challenges/1110002/register", + "queryParams": [], + "preRequestScript": null, + "pathVariables": {}, + "pathVariableData": [], + "method": "POST", + "data": null, + "dataMode": "params", + "version": 2, + "tests": null, + "currentHelper": "normal", + "helperAttributes": {}, + "time": 1497813399305, + "name": "Old logic, access allowed", + "description": "", + "collectionId": "ba962be9-0d58-f187-8809-008a39bc2240", + "responses": [] + }, + { + "id": "60ae89de-4eb1-c0aa-b866-b28b52436e89", + "headers": "Authorization: Bearer {{authToken}}\n", + "headerData": [ + { + "key": "Authorization", + "value": "Bearer {{authToken}}", + "description": "", + "enabled": true + } + ], + "url": "{{url}}/challenges/1110003/register", + "queryParams": [], + "preRequestScript": null, + "pathVariables": {}, + "pathVariableData": [], + "method": "POST", + "data": null, + "dataMode": "params", + "version": 2, + "tests": null, + "currentHelper": "normal", + "helperAttributes": {}, + "time": 1497813480606, + "name": "Old logic, access denied", + "description": "", + "collectionId": "ba962be9-0d58-f187-8809-008a39bc2240", + "responses": [] + }, { "id": "6bed8920-6800-0ae0-e63d-b39b05c7f50c", "headers": "Content-Type: application/json\n", @@ -114,6 +245,35 @@ "helperAttributes": {}, "folder": "712ffa63-a959-e4a3-6af9-84d4f236b2f3" }, + { + "id": "843d6759-0cc0-a0c6-9fde-60f893f56eac", + "headers": "Authorization: Bearer {{authToken}}\n", + "headerData": [ + { + "key": "Authorization", + "value": "Bearer {{authToken}}", + "description": "", + "enabled": true + } + ], + "url": "{{url}}/challenges/1110004/register", + "queryParams": [], + "preRequestScript": null, + "pathVariables": {}, + "pathVariableData": [], + "method": "POST", + "data": null, + "dataMode": "params", + "version": 2, + "tests": null, + "currentHelper": "normal", + "helperAttributes": {}, + "time": 1497813524683, + "name": "New logic, access allowed", + "description": "", + "collectionId": "ba962be9-0d58-f187-8809-008a39bc2240", + "responses": [] + }, { "id": "a3ae5124-2077-4ff2-4e02-afae7670bbe5", "headers": "Authorization: Bearer {{authToken}}\n", pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy