evrythng / epcis2.js

EPCIS 2.0 Javascript SDK
Apache License 2.0
35 stars 4 forks source link

Add ability to pass event array of events to constructor #10

Closed domguinard closed 3 years ago

domguinard commented 3 years ago

Add ability to pass event array of events to constructor, e.g.,

//Picker: Picking-GSF

pick2
  .setEventTime("2021-06-11T20:33:31.116-06:00")
  .setEventTimeZoneOffset("-06:00")
  .setParentId("urn:epc:id:giai:0708112.1234567911")
  .addChildEPCList([
    "urn:epc:id:sgtin:0195500.500406.123456786703",
    "urn:epc:id:sgtin:0195500.500406.123456786704",
    "urn:epc:id:sgtin:0195500.500406.123456786707",
    "urn:epc:id:sgtin:0195500.500406.123456786705",
    "urn:epc:id:sgtin:0195500.500539.123456783374",
    "urn:epc:id:sgtin:0195500.500539.123456783375",
    "urn:epc:id:sgtin:0195500.500539.123456783369",
    "urn:epc:id:sgtin:0195500.500539.123456783371",
  ])
  .setAction(actionTypes.add)
  .setBizStep(bizSteps.picking)
  .setDisposition(dispositions.in_progress)
  .setReadPoint("urn:epc:id:sgln:0708112.00001.0")
  .setBizLocation("urn:epc:id:sgln:0708112.00002.0")
  .addBizTransaction(businessTransactionTypes.po);

//Picker: Picking-Simplot
pick3
  .setEventTime("2021-06-11T20:33:31.116-06:00")
  .setEventTimeZoneOffset("-06:00")
  .setParentId("urn:epc:id:giai:071179.1234567920")
  .addChildEPCList([
    "urn:epc:id:sgtin:0195500.500488.123456789057",
    "urn:epc:id:sgtin:0195500.500488.123456789061",
    "urn:epc:id:sgtin:0195500.500488.123456789060",
    "urn:epc:id:sgtin:0195500.500488.123456789059",
  ])
  .setAction(actionTypes.add)
  .setBizStep(bizSteps.picking)
  .setDisposition(dispositions.in_progress)
  .setReadPoint("urn:epc:id:sgln:0708112.00001.0")
  .setBizLocation("urn:epc:id:sgln:0708112.00002.0")
  .addBizTransaction(businessTransactionTypes.po);

//Shipper: Encoding
encode
  .setEventTime("2021-06-11T20:38:31.116-06:00")
  .setEventTimeZoneOffset("-06:00")
  .addEPC("uurn:epc:tag:sscc-96:0.0663056.0000000016")
  .setAction(actionTypes.add)
  .setBizStep(bizSteps.encoding)
  .setDisposition(dispositions.encoded)
  .setReadPoint("urn:epc:id:sgln:0708112.00003.0")
  .setBizLocation("urn:epc:id:sgln:0708112.00004.0");

//Shipper: Packing
pack
  .setEventTime("2021-06-11T20:40:31.116-06:00")
  .setEventTimeZoneOffset("-06:00")
  .setParentId("urn:epc:id:sscc:0888632.0000000016")
  .addChildEPCList([
    "urn:epc:id:giai:0653912.1234567918",
    "urn:epc:id:giai:0708112.1234567911",
    "urn:epc:id:giai:071179.1234567920",
  ])
  .setAction(actionTypes.add)
  .setBizStep(bizSteps.packing)
  .setDisposition(dispositions.in_progress)
  .setReadPoint("urn:epc:id:sgln:0708112.00003.0")
  .setBizLocation("urn:epc:id:sgln:0708112.00004.0");

//Shipper: Loading
load
  .setEventTime("2021-06-11T20:50:31.116-06:00")
  .setEventTimeZoneOffset("-06:00")
  .setParentId("urn:epc:id:giai:1234567.0000000002")
  .addChildEPC("urn:epc:id:sscc:0888632.0000000016")
  .setAction(actionTypes.add)
  .setBizStep(bizSteps.loading)
  .setDisposition(dispositions.in_progress)
  .setReadPoint("urn:epc:id:sgln:0708112.00003.0")
  .setBizLocation("urn:epc:id:sgln:0708112.00005.0")
  .addBizTransaction(businessTransactionTypes.bol);

//Driver: Departing
depart
  .setEventTime("2021-06-11T20:55:31.116-06:00")
  .setEventTimeZoneOffset("-06:00")
  .addEPC("urn:epc:id:giai:1234567.0000000002")
  .setAction(actionTypes.observe)
  .setBizStep(bizSteps.departing)
  .setDisposition(dispositions.in_transit)
  .setReadPoint("urn:epc:id:sgln:0708112.00006.0")
  .setBizLocation("urn:epc:id:sgln:0708112.00007.0");

//Driver: Arriving
arrive
  .setEventTime("2021-06-11T21:30:31.116-06:00")
  .setEventTimeZoneOffset("-06:00")
  .addEPC("urn:epc:id:giai:1234567.0000000002")
  .setAction(actionTypes.observe)
  .setBizStep(bizSteps.arriving)
  .setDisposition(dispositions.in_progress)
  .setReadPoint("urn:epc:id:sgln:0708112.00008.0")
  .setBizLocation("urn:epc:id:sgln:0708112.00009.0");

//Stocker: Receiving
receive
  .setEventTime("2021-06-11T21:35:31.116-06:00")
  .setEventTimeZoneOffset("-06:00")
  .setParentId("urn:epc:id:giai:1234567.0000000002")
  .addChildEPCList(["urn:epc:id:sscc:0888632.0000000016"])
  .setAction(actionTypes.delete)
  .setBizStep(bizSteps.receiving)
  .setDisposition(dispositions.in_progress)
  .setReadPoint("urn:epc:id:sgln:0708112.00008.0")
  .setBizLocation("urn:epc:id:sgln:0708112.00009.0")
  .addBizTransactionList([
    businessTransactionTypes.inv,
    businessTransactionTypes.pedigree,
  ]);

//Stocker: Unpacking
unpack
  .setEventTime("2021-06-11T21:45:31.116-06:00")
  .setEventTimeZoneOffset("-06:00")
  .setParentId("urn:epc:id:sscc:0888632.0000000016")
  .addChildEPCList([
    "urn:epc:id:giai:0653912.1234567918",
    "urn:epc:id:giai:0708112.1234567911",
    "urn:epc:id:giai:071179.1234567920",
  ])
  .setAction(actionTypes.delete)
  .setBizStep(bizSteps.unpacking)
  .setDisposition(dispositions.sellable_not_accessible)
  .setReadPoint("urn:epc:id:sgln:0708112.00010.0")
  .setBizLocation("urn:epc:id:sgln:0708112.00011.0");

//Stocker: Stocking-Tyson
stock1
  .setEventTime("2021-06-11T21:50:31.116-06:00")
  .setEventTimeZoneOffset("-06:00")
  .setParentId("urn:epc:id:giai:0653912.1234567918")
  .addChildEPCList([
    "urn:epc:id:sgtin:0195500.500556.123456784483",
    "urn:epc:id:sgtin:0195500.500556.123456784479",
    "urn:epc:id:sgtin:0195500.500556.123456784485",
    "urn:epc:id:sgtin:0195500.500556.123456784482",
  ])
  .setAction(actionTypes.delete)
  .setBizStep(bizSteps.stocking)
  .setDisposition(dispositions.sellable_accessible)
  .setReadPoint("urn:epc:id:sgln:0708112.00012.0")
  .setBizLocation("urn:epc:id:sgln:0708112.00013.0");

//Stocker: Stocking-GSF
stock2
  .setEventTime("2021-06-11T21:50:31.116-06:00")
  .setEventTimeZoneOffset("-06:00")
  .setParentId("urn:epc:id:giai:0708112.1234567911")
  .addChildEPCList([
    "urn:epc:id:sgtin:0195500.500406.123456786703",
    "urn:epc:id:sgtin:0195500.500406.123456786704",
    "urn:epc:id:sgtin:0195500.500406.123456786707",
    "urn:epc:id:sgtin:0195500.500406.123456786705",
    "urn:epc:id:sgtin:0195500.500539.123456783374",
    "urn:epc:id:sgtin:0195500.500539.123456783375",
    "urn:epc:id:sgtin:0195500.500539.123456783369",
    "urn:epc:id:sgtin:0195500.500539.123456783371",
  ])
  .setAction(actionTypes.delete)
  .setBizStep(bizSteps.stocking)
  .setDisposition(dispositions.sellable_accessible)
  .setReadPoint("urn:epc:id:sgln:0708112.00012.0")
  .setBizLocation("urn:epc:id:sgln:0708112.00013.0");

//Stocker: Stocking-Simplot
stock3
  .setEventTime("2021-06-11T21:50:31.116-06:00")
  .setEventTimeZoneOffset("-06:00")
  .setParentId("urn:epc:id:giai:071179.1234567920")
  .addChildEPCList([
    "urn:epc:id:sgtin:0195500.500488.123456789057",
    "urn:epc:id:sgtin:0195500.500488.123456789061",
    "urn:epc:id:sgtin:0195500.500488.123456789060",
    "urn:epc:id:sgtin:0195500.500488.123456789059",
  ])
  .setAction(actionTypes.delete)
  .setBizStep(bizSteps.stocking)
  .setDisposition(dispositions.sellable_accessible)
  .setReadPoint("urn:epc:id:sgln:0708112.00012.0")
  .setBizLocation("urn:epc:id:sgln:0708112.00013.0");

//Cashier: Retail Selling
sell
  .setEventTime("2021-06-12T12:00:31.116-06:00")
  .setEventTimeZoneOffset("-06:00")
  .addEPC("urn:epc:id:sgtin:0195500.500556.123456784483")
  .setAction(actionTypes.delete)
  .setBizStep(bizSteps.retail_selling)
  .setDisposition(dispositions.retail_sold)
  .setReadPoint("urn:epc:id:sgln:0708112.00012.0")
  .setBizLocation("urn:epc:id:sgln:0708112.00014.0");

pick.addEvent(pick1).addEvent(pick2).addEvent(pick3);
/* 
  ability to pass event array of events to constructor?
  const pick = new EPCISDocument(pickArray);
  const pick = new EPCISDocument([pick1, pick2, pick3]);
  */

stock.addEvent(stock1).addEvent(stock2).addEvent(stock3);

export const events = {
  pick: pick,
  encode: encode,
  pack: pack,
  load: load,
  depart: depart,
  arrive: arrive,
  receive: receive,
  unpack: unpack,
  stock: stock,
  sell: sell,
};
clementh59 commented 3 years ago

The addEventList function allows you to do exactly what you want.

const epcisDocument = new EPCISDocument();
epcisDocument.addEventList([event, event2]);