From 593159c22c2acad599b67d1b128a52232b79a34b Mon Sep 17 00:00:00 2001 From: eug-vs Date: Sat, 24 Apr 2021 20:34:00 +0300 Subject: feat: add accounts service --- src/models/account/account.model.ts | 4 ++++ src/models/account/account.schema.ts | 23 +++++++++++++++++++++++ src/services/accounts.service.ts | 10 ++++++++++ src/services/index.ts | 2 ++ 4 files changed, 39 insertions(+) create mode 100644 src/models/account/account.model.ts create mode 100644 src/models/account/account.schema.ts create mode 100644 src/services/accounts.service.ts diff --git a/src/models/account/account.model.ts b/src/models/account/account.model.ts new file mode 100644 index 0000000..1df1406 --- /dev/null +++ b/src/models/account/account.model.ts @@ -0,0 +1,4 @@ +import { Model, model } from 'mongoose'; +import { AccountSchema, accountSchema } from './account.schema'; + +export default model>('Account', accountSchema); diff --git a/src/models/account/account.schema.ts b/src/models/account/account.schema.ts new file mode 100644 index 0000000..3ce3983 --- /dev/null +++ b/src/models/account/account.schema.ts @@ -0,0 +1,23 @@ +import { Document, Schema } from 'mongoose'; + +export interface AccountSchema extends Document { + name: string; + code: string; + balance: number; +} + +export const accountSchema = new Schema({ + name: { + type: String, + required: true, + }, + code: { + type: String, + required: true, + }, + balance: { + type: Number, + default: 0, + }, +}, { timestamps: true }); + diff --git a/src/services/accounts.service.ts b/src/services/accounts.service.ts new file mode 100644 index 0000000..cf22a9b --- /dev/null +++ b/src/services/accounts.service.ts @@ -0,0 +1,10 @@ +import { Application } from '@feathersjs/express'; +import service from 'feathers-mongoose'; +import Model from '../models/account/account.model'; + +const Accounts = service({ Model, whitelist: ['$options', '$regex'] }); + +export default (app: Application): void => { + app.use('/accounts', Accounts); +}; + diff --git a/src/services/index.ts b/src/services/index.ts index b94380d..499ab68 100644 --- a/src/services/index.ts +++ b/src/services/index.ts @@ -1,4 +1,5 @@ import { Application } from '@feathersjs/express'; +import Accounts from './accounts.service'; import Products from './products.service'; import Contractors from './contractors.service'; import Waybills from './waybills.service'; @@ -9,6 +10,7 @@ import sortByDate from '../hooks/sortByDate'; import ignoreCaseRegex from '../hooks/ignoreCaseRegex'; export default (app: Application): void => { + app.configure(Accounts); app.configure(Products); app.configure(Contractors); app.configure(Waybills); -- cgit v1.2.3