@tomei/product
Version:
NestJS package for product module
60 lines (55 loc) • 1.51 kB
text/typescript
import { RepositoryBase, IRepositoryBase } from '@tomei/general';
import { SettingsGroupModel } from '../../entities/settings-group.entity';
export class ProductGroupRepository
extends RepositoryBase<SettingsGroupModel>
implements IRepositoryBase<SettingsGroupModel>
{
constructor() {
super(SettingsGroupModel);
}
async findByPk(code: string): Promise<SettingsGroupModel> {
try {
const options = {
where: {
Code: code,
},
};
const result = await SettingsGroupModel.findOne(options);
return result;
} catch (error) {
throw new Error(
`An Error occured when fetching product group: ${error.message}`,
);
}
}
async delete(code: string, dbTransaction?: any) {
try {
const options = {
where: {
Code: code,
},
transaction: dbTransaction,
};
await SettingsGroupModel.destroy(options);
} catch (error) {
throw new Error(
`An Error occured when delete product group: ${error.message}`,
);
}
}
async findAndCountAll(options?: any) {
try {
let settingGroups: any;
if (options) {
settingGroups = await SettingsGroupModel.findAndCountAll(options);
} else {
settingGroups = await SettingsGroupModel.findAndCountAll();
}
return settingGroups;
} catch (error) {
throw new Error(
`An Error occured when retriving product groups: ${error.message}`,
);
}
}
}