12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- const request = require('request')
- 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,
- form: form || {},
- headers: {
- 'auth-info': 'loginname=' + env.loginName + ';password=' + env.password
- }
- }, 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) {
- 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
- }
- 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');
- }
|