1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- 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: 1000,
- 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, upload, absent, withScoreDetail, withMarkTrack) {
- let form = {
- examId: examId,
- pageNumber: pageNumber,
- pageSize: pageSize
- }
- if (upload != undefined) {
- form.upload = upload
- }
- if (absent != undefined) {
- form.absent = absent
- }
- if (withScoreDetail != undefined) {
- form.withScoreDetail = withScoreDetail
- }
- if (withMarkTrack != undefined) {
- form.withMarkTrack = withMarkTrack
- }
- 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) {
- let uri = '/api/package/count/' + examId
- if (upload != undefined) {
- uri = uri + '?upload=' + (upload ? 'true' : false)
- }
- return execute(uri, 'GET');
- }
|