feat: add endpoint get product history price

This commit is contained in:
caturbgs
2021-12-21 21:28:25 +07:00
parent f3863cd09f
commit 0832308acd
2 changed files with 70 additions and 7 deletions

View File

@@ -1,7 +1,6 @@
import { HttpException, HttpStatus, Injectable } from '@nestjs/common';
import { EntityNotFoundError, IsNull, Repository } from 'typeorm';
import { InjectRepository } from '@nestjs/typeorm';
import { ProductCategories } from '../entities/product-category.entity';
import { ProductHistoryPrice } from '../entities/product-history-price.entity';
@Injectable()
@@ -34,4 +33,49 @@ export class ProductHistoryPriceService {
}
}
}
async findOneByProductId(
page: number,
productId: string,
supplierId: string,
) {
try {
const query = this.productHistoryPriceService
.createQueryBuilder('product_history_price')
.leftJoin('product_history_price.product', 'product')
.where({ product: productId })
.andWhere('product_history_price.endDate IS NULL');
if (supplierId !== 'null' && supplierId) {
query.andWhere('product.supplier = :supplierId', {
supplierId: supplierId,
});
}
const data = await query
.orderBy('product_history_price.createdAt', 'DESC')
.skip(page * 10)
.take(10)
.getMany();
const totalData = await query.getCount();
return {
data,
count: totalData,
};
} catch (e) {
if (e instanceof EntityNotFoundError) {
throw new HttpException(
{
statusCode: HttpStatus.NOT_FOUND,
error: 'Product History Price not found',
},
HttpStatus.NOT_FOUND,
);
} else {
throw e;
}
}
}
}