mock平台

interfaceCase.js 2.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. const yapi = require('../yapi.js');
  2. const baseModel = require('./base.js');
  3. var mongoose = require('mongoose');
  4. var Schema = mongoose.Schema;
  5. class interfaceCase extends baseModel {
  6. getName() {
  7. return 'interface_case';
  8. }
  9. getSchema() {
  10. return {
  11. casename: { type: String, required: true },
  12. uid: { type: Number, required: true },
  13. col_id: { type: Number, required: true },
  14. index: { type: Number, default: 0 },
  15. project_id: { type: Number, required: true },
  16. interface_id: { type: Number, required: true },
  17. add_time: Number,
  18. up_time: Number,
  19. case_env: { type: String },
  20. req_params: [
  21. {
  22. name: String,
  23. value: String
  24. }
  25. ],
  26. req_headers: [
  27. {
  28. name: String,
  29. value: String
  30. }
  31. ],
  32. req_query: [
  33. {
  34. name: String,
  35. value: String,
  36. enable: { type: Boolean, default: true }
  37. }
  38. ],
  39. req_body_form: [
  40. {
  41. name: String,
  42. value: String,
  43. enable: { type: Boolean, default: true }
  44. }
  45. ],
  46. req_body_other: String,
  47. test_res_body: String,
  48. test_status: { type: String, enum: ['ok', 'invalid', 'error', ''] },
  49. test_res_header: Schema.Types.Mixed,
  50. mock_verify: { type: Boolean, default: false },
  51. enable_script: { type: Boolean, default: false },
  52. test_script: String
  53. };
  54. }
  55. save(data) {
  56. let m = new this.model(data);
  57. return m.save();
  58. }
  59. //获取全部测试接口信息
  60. getInterfaceCaseListCount() {
  61. return this.model.countDocuments({});
  62. }
  63. get(id) {
  64. return this.model
  65. .findOne({
  66. _id: id
  67. })
  68. .exec();
  69. }
  70. list(col_id, select) {
  71. select = select || 'casename uid col_id _id index interface_id project_id';
  72. if (select === 'all') {
  73. return this.model
  74. .find({
  75. col_id: col_id
  76. })
  77. .exec();
  78. }
  79. return this.model
  80. .find({
  81. col_id: col_id
  82. })
  83. .select(select)
  84. .exec();
  85. }
  86. del(id) {
  87. return this.model.remove({
  88. _id: id
  89. });
  90. }
  91. delByProjectId(id) {
  92. return this.model.remove({
  93. project_id: id
  94. });
  95. }
  96. delByInterfaceId(id) {
  97. return this.model.remove({
  98. interface_id: id
  99. });
  100. }
  101. delByCol(id) {
  102. return this.model.remove({
  103. col_id: id
  104. });
  105. }
  106. up(id, data) {
  107. data.up_time = yapi.commons.time();
  108. return this.model.update({ _id: id }, data);
  109. }
  110. upCaseIndex(id, index) {
  111. return this.model.update(
  112. {
  113. _id: id
  114. },
  115. {
  116. index: index
  117. }
  118. );
  119. }
  120. }
  121. module.exports = interfaceCase;