diff --git a/src/controllers/productController.ts b/src/controllers/productController.ts index b2bd7b3..4d8c914 100644 --- a/src/controllers/productController.ts +++ b/src/controllers/productController.ts @@ -1,16 +1,15 @@ import { getRepository } from "typeorm"; import { Product } from '../entity/Product'; import { HiiperService } from "../services/HiiperService" -import {getMongoRepository} from "typeorm"; +import { getMongoRepository } from "typeorm"; class ProductController { - + static saveProducts = async () => { const productRepository = getMongoRepository(Product); const hiiperService = new HiiperService(); hiiperService.RequestProductsAsync().then(function (value) { - //console.log(value[0]); - productRepository.insertMany(value[0]); + productRepository.insertMany(value); }); }; }; diff --git a/src/entity/Product.ts b/src/entity/Product.ts index b2bc687..1e48721 100644 --- a/src/entity/Product.ts +++ b/src/entity/Product.ts @@ -2,9 +2,6 @@ import { Entity, PrimaryGeneratedColumn, Column, - Unique, - CreateDateColumn, - UpdateDateColumn } from "typeorm"; import { Length, IsNotEmpty } from "class-validator"; diff --git a/src/routes/routes.ts b/src/routes/routes.ts index f3a3312..af8ab8e 100644 --- a/src/routes/routes.ts +++ b/src/routes/routes.ts @@ -7,7 +7,7 @@ const routes = Router(); routes.use("/auth", auth); routes.use("/user", user); -routes.use("/product", product); +routes.use("/import", product); export default routes; \ No newline at end of file diff --git a/src/services/HiiperService.ts b/src/services/HiiperService.ts index c925a40..fd00856 100644 --- a/src/services/HiiperService.ts +++ b/src/services/HiiperService.ts @@ -1,6 +1,7 @@ const req = require("request"); import { getRepository } from "typeorm"; import { Product } from "../entity/Product"; +let cookie : object; export class HiiperService { private email: string; @@ -33,10 +34,11 @@ export class HiiperService { }, function (error, response): void { if (!error && response.statusCode == 200) { + console.log("Succesfully setup hiiper session") resolve(cookie) } else { - console.log(error); + console.log(response.statusCode); reject("Error setting up Hiiper Session") } } @@ -44,16 +46,18 @@ export class HiiperService { }); } - private async HiiperRequestAsync(hiperUri: string) { - const cookie: object = await this.SetupSessionAsync(); + private async HiiperRequestAsync(hiiperUri: string) { + if(!cookie){ + cookie = await this.SetupSessionAsync(); + } return new Promise((resolve, reject): void => { - req.get(hiperUri, { jar: cookie, headers: this.headers }, function (error, response, body): void { + req.get(hiiperUri, { jar: cookie, headers: this.headers }, function (error, response, body): void { if (!error && response.statusCode == 200) { - const result: any = JSON.parse(body) + const result: any = JSON.parse(body); resolve(result.items); } else { - console.log(error); + console.log(response); reject("Error executing HiiperRequestAsync") } }); @@ -65,26 +69,18 @@ export class HiiperService { let pageSize: number = 1; let productUri: string = `https://api.hiiper.nl/api/v1/client/clickout/deals?deals_type=general&items_in_row=11&r_limit=0&rarity=0&rows_per_page=5&page=${pageSize}` let retrievedProducts: any = await this.HiiperRequestAsync(productUri); - products.push(retrievedProducts); + + // .push.apply makes sure the structure will be [object,object] instead of [[object,object], [object,object]] + products.push.apply(products, retrievedProducts); pageSize++; // Increase page while there is data while (retrievedProducts.length > 0) { productUri = `https://api.hiiper.nl/api/v1/client/clickout/deals?deals_type=general&items_in_row=11&r_limit=0&rarity=0&rows_per_page=5&page=${pageSize}` retrievedProducts = await this.HiiperRequestAsync(productUri); console.log(`Succesfully retrieved data from ${productUri}`); - if(retrievedProducts.length > 0) { - products.push(retrievedProducts[0]); - } + products.push.apply(products, retrievedProducts); pageSize++; }; return products; }; }; - -// const productRepository = getRepository(Product); - -// const hiiperService = new HiiperService(); -// hiiperService.RequestProductsAsync().then(function (value) { -// //console.log(value); -// productRepository.save(value); -// }); \ No newline at end of file