lexica-dialog-repository
Version:
57 lines • 1.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const mongoose_1 = require("mongoose");
const Issue_1 = require("lexica-dialog-model/dist/Issue");
const CRUDRepository_1 = require("./CRUDRepository");
const issueSchema = new mongoose_1.Schema({
closedDate: {
required: false,
type: Date,
},
lastUpdatedDate: {
require: true,
type: Date,
},
messenger: {
required: true,
type: String,
},
openDate: {
required: true,
type: Date,
},
senderId: {
required: true,
type: String,
},
status: {
enum: [Issue_1.Status.CLOSED, Issue_1.Status.OPEN],
required: true,
type: String,
},
uni: {
required: true,
type: String,
},
});
class IssueRepository extends CRUDRepository_1.default {
constructor(mongoConnection) {
super(mongoConnection.model('Issue', issueSchema, 'Issues'));
}
async findByUniAndStatus(uni, status) {
return this.model.find({ uni, status });
}
async findByUniAndSenderId(uni, senderId) {
return this.model.find({ uni, senderId });
}
async findByUniAndSenderIdAndStatus(uni, senderId, status) {
return this.model.find({ uni, senderId, status });
}
async findByUniAndSenderIdAndNotStatus(uni, senderId, status) {
return this.model.find({ uni, senderId, status: { $ne: status } });
}
}
exports.IssueRepository = IssueRepository;
const issueRepository = new IssueRepository(mongoose_1.connection);
exports.issueRepository = issueRepository;
//# sourceMappingURL=IssueRepository.js.map