12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- const request = require('requestretry')
- const env = require('./env.js')
- const logger = require('./logger.js')('api.js')
- async function execute(uri, method, form) {
- return new Promise((resolve, reject) => {
- request({
- url: 'http://' + env.server.host + uri,
- method: method,
- json: true,
- timeout: 10000,
- form: form || {},
- headers: {
- 'auth-info': 'loginname=' + env.loginName + ';password=' + env.password
- },
- maxAttempts: 50,
- retryDelay: 500,
- retryStrategy: request.RetryStrategies.HTTPOrNetworkError
- }, function (error, response, body) {
- if (response.statusCode == 200) {
- resolve(body);
- } else {
- let message = response.statusCode + ' ' + (error || '') + (response.headers['error-info'] || '')
- logger.error(message)
- reject(message)
- }
- })
- })
- }
- module.exports.login = function () {
- return execute('/api/user/login', 'GET');
- }
- module.exports.getExams = function (pageNumber, pageSize) {
- let uri = '/api/exams'
- let param = [];
- if (pageNumber != undefined) {
- param.push('pageNumber=' + pageNumber)
- }
- if (pageSize != undefined) {
- param.push('pageSize=' + pageSize)
- }
- if (param.length > 0) {
- uri = uri + '?' + param.join('&')
- }
- return execute(uri, 'GET');
- }
- module.exports.getStudents = function (examId, pageNumber, pageSize, params) {
- let form = {
- examId: examId,
- pageNumber: pageNumber,
- pageSize: pageSize
- }
- if (params != undefined) {
- for (let key in params) {
- if (params[key] && params[key] != '') {
- form[key] = params[key]
- }
- }
- }
- return execute('/api/exam/students', 'POST', form);
- }
- module.exports.countStudents = function (examId, upload, absent) {
- let uri = '/api/students/count/' + examId
- let param = []
- if (upload != undefined) {
- param.push('upload=' + (upload ? 'true' : 'false'))
- }
- if (absent != undefined) {
- param.push('absent=' + (absent ? 'true' : 'false'))
- }
- if (param.length > 0) {
- uri = uri + '?' + param.join('&')
- }
- return execute(uri, 'GET')
- }
- module.exports.getPackages = function (examId, upload, withUrl) {
- let uri = '/api/package/count/' + examId
- let param = []
- if (upload != undefined) {
- param.push('upload=' + (upload ? 'true' : 'false'))
- }
- if (withUrl != undefined) {
- param.push('withUrl=' + (withUrl ? 'true' : 'false'))
- }
- if (param.length > 0) {
- uri = uri + '?' + param.join('&')
- }
- return execute(uri, 'GET')
- }
|