UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

54 lines (53 loc) 2.4 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ServiceAvailableHourRepo = void 0; const availableHour_1 = require("../mongoose/schemas/service/availableHour"); /** * サービス利用可能時間リポジトリ */ class ServiceAvailableHourRepo { constructor(connection) { this.availableHoursModel = connection.model(availableHour_1.modelName, (0, availableHour_1.createSchema)()); } saveOne(params) { return __awaiter(this, void 0, void 0, function* () { yield this.availableHoursModel.create(params); }); } findValidOne(filter, inclusion) { return __awaiter(this, void 0, void 0, function* () { const andQuery = []; const now = filter.now; andQuery.push({ validFrom: { $lte: now } }, { validThrough: { $gte: now } }); const filterQuery = Object.assign({}, (andQuery.length > 0) ? { $and: andQuery } : undefined); // eslint-disable-next-line no-magic-numbers const projection = { // const projection: { [key: string]: AnyExpression } = { _id: 0 // id: { $toString: '$_id' }, }; if (Array.isArray(inclusion)) { inclusion.forEach((field) => { projection[field] = 1; }); } const doc = yield this.availableHoursModel.findOne(filterQuery, projection, { sort: { validFrom: 1 } }) .lean() .exec(); if (doc !== null) { return doc; } return; }); } } exports.ServiceAvailableHourRepo = ServiceAvailableHourRepo;