import { bid, openrtb } from "../../../src/beeswax-protos/beeswax"; import { parseInt } from "lodash"; import Source = openrtb.Enums.Inventory.Source; export class FakeBeeswaxRequestBuilder { private request: bid.IBidAgentRequest; constructor() { this.request = { adcandidates: [], bid_request: { id: "d19ad1b3-5135-411f-a6c3-954db35381f6", imp: [ { id: "d19ad1b3-5135-411f-a6c3-954db35381f7", }, ], device: { ifa: "ifa", ua: "ua", language: "", ip: "", ipv6: "", os: "ANDROID", osv: "2.0.1", geo: { city: "Strasbourg", country: "FRA", }, }, app: { id: "", name: "app", bundle: "com.app", domain: "app.com", }, ext: { auctionid_str: "auctionid_str", inventory_source: Source.SMARTADSERVER, }, at: 0, }, }; } withCampaigns(...ids: string[]): FakeBeeswaxRequestBuilder { // @ts-ignore this.request.adcandidates = ids.map((id) => { return { line_item_id: parseInt(id), line_item_alternative_id: id, creative_ids: [parseInt(id)], }; }); return this; } withImp(...imps: openrtb.BidRequest.IImpression[]): FakeBeeswaxRequestBuilder { // @ts-ignore this.request.bid_request?.imp = imps; return this; } withIp(ip: string): FakeBeeswaxRequestBuilder { // @ts-ignore this.request.bid_request.device.ip = ip; return this; } withBidfloor(bidfloor: number): FakeBeeswaxRequestBuilder { // @ts-ignore this.request.bid_request?.imp[0].bidfloor = bidfloor; return this; } build(): bid.IBidAgentRequest { return this.request; } }