57 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
import { AllbidsScrapModel } from "../models/allbids-scrap-model.js";
 | 
						|
import { GraysScrapModel } from "../models/grays-scrap-model.js";
 | 
						|
import { LangtonsScrapModel } from "../models/langtons-scrap-model.js";
 | 
						|
import { LawsonsScrapModel } from "../models/lawsons-scrap-model.js";
 | 
						|
import { PicklesScrapModel } from "../models/pickles-scrap-model.js";
 | 
						|
 | 
						|
export class ScrapConfigsService {
 | 
						|
  static scrapModel(scrapConfig, page) {
 | 
						|
    switch (scrapConfig.web_bid.origin_url) {
 | 
						|
      case "https://www.grays.com": {
 | 
						|
        return new GraysScrapModel({
 | 
						|
          ...scrapConfig,
 | 
						|
          scrap_config_id: scrapConfig.id,
 | 
						|
          page: page,
 | 
						|
        });
 | 
						|
      }
 | 
						|
      case "https://www.langtons.com.au": {
 | 
						|
        return new LangtonsScrapModel({
 | 
						|
          ...scrapConfig,
 | 
						|
          scrap_config_id: scrapConfig.id,
 | 
						|
          page: page,
 | 
						|
        });
 | 
						|
      }
 | 
						|
      case "https://www.lawsons.com.au": {
 | 
						|
        return new LawsonsScrapModel({
 | 
						|
          ...scrapConfig,
 | 
						|
          scrap_config_id: scrapConfig.id,
 | 
						|
          page: page,
 | 
						|
        });
 | 
						|
      }
 | 
						|
      case "https://www.pickles.com.au": {
 | 
						|
        return new PicklesScrapModel({
 | 
						|
          ...scrapConfig,
 | 
						|
          scrap_config_id: scrapConfig.id,
 | 
						|
          page: page,
 | 
						|
        });
 | 
						|
      }
 | 
						|
      case "https://www.allbids.com.au": {
 | 
						|
        return new AllbidsScrapModel({
 | 
						|
          ...scrapConfig,
 | 
						|
          scrap_config_id: scrapConfig.id,
 | 
						|
          page: page,
 | 
						|
        });
 | 
						|
      }
 | 
						|
      default: {
 | 
						|
        return null;
 | 
						|
      }
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  static scrapModels(data, page) {
 | 
						|
    return data
 | 
						|
      .map((item) => this.scrapModel(item, page))
 | 
						|
      .filter((item) => !!item);
 | 
						|
  }
 | 
						|
}
 |