Merge branch 'development' into 'devops-staging'
add: create product based on csv See merge request empatnusabangsa/ppob/ppob-backend!58
This commit is contained in:
commit
a59ce9ab22
|
@ -7,10 +7,7 @@ export async function parsingFile(dataFile) {
|
|||
const results = [];
|
||||
|
||||
const file = createReadStream(
|
||||
path.join(
|
||||
process.cwd(),
|
||||
'./files/Template Upload Product - Sheet1-a532.csv',
|
||||
),
|
||||
path.join(process.cwd(), `./files/${dataFile}`),
|
||||
);
|
||||
|
||||
file
|
||||
|
|
6
src/product/dto/product/upload-product.dto.ts
Normal file
6
src/product/dto/product/upload-product.dto.ts
Normal file
|
@ -0,0 +1,6 @@
|
|||
import { IsNotEmpty, IsUUID } from 'class-validator';
|
||||
|
||||
export class UploadProductDto {
|
||||
@IsNotEmpty()
|
||||
fileName: string;
|
||||
}
|
|
@ -21,6 +21,7 @@ import { CreateSubCategoriesProductDto } from './dto/sub-categories/create-sub-c
|
|||
import { CreateProductDto } from './dto/product/create-product.dto';
|
||||
import { UpdateProductDto } from './dto/product/update-product.dto';
|
||||
import { ProductHistoryPriceService } from './history-price/history-price.service';
|
||||
import { UploadProductDto } from './dto/product/upload-product.dto';
|
||||
|
||||
@Controller({
|
||||
path: 'product',
|
||||
|
@ -69,6 +70,17 @@ export class ProductController {
|
|||
};
|
||||
}
|
||||
|
||||
@Post('upload-product')
|
||||
async createProductBaseOnCSV(@Body() uploadProductDto: UploadProductDto) {
|
||||
await this.productService.processUploadCSV(uploadProductDto.fileName);
|
||||
|
||||
return {
|
||||
data: 'Done',
|
||||
statusCode: HttpStatus.CREATED,
|
||||
message: 'success',
|
||||
};
|
||||
}
|
||||
|
||||
@Get('all')
|
||||
async findAll(
|
||||
@Query('page') page: number,
|
||||
|
@ -92,7 +104,7 @@ export class ProductController {
|
|||
|
||||
@Get('test')
|
||||
async test(@Request() req) {
|
||||
const data = await this.productService.processUploadCSV();
|
||||
const data = await this.productService.processUploadCSV('');
|
||||
|
||||
return {
|
||||
data,
|
||||
|
|
|
@ -50,8 +50,8 @@ export class ProductService {
|
|||
return this.productRepository.findOneOrFail(result.identifiers[0].id);
|
||||
}
|
||||
|
||||
async processUploadCSV() {
|
||||
const data = await parsingFile('');
|
||||
async processUploadCSV(uploadFile: string) {
|
||||
const data = await parsingFile(uploadFile);
|
||||
data.shift();
|
||||
await Promise.all(
|
||||
data.map(async (it) => {
|
||||
|
|
Loading…
Reference in New Issue
Block a user