Hi,
Is there any sample code available for calling the create API [POST /data/:ledgerId/v1/create] using Postman?
I am trying to call the CreateQuoteRequest choice from the BuyerRole and need some help.
Stripped out Workflow
Operator -> Create Network
Operator -> ExerciseCmd BuyerInvitation on Network - Buyer1
Operator -> ExerciseCmd SellerInvitation on Network- Seller1
Operator -> ExerciseCmd CreateProductCard on Network- PID : 100
Buyer1 -> AcceptBuyerInvitation
Seller1 -> AcceptSellerInvitation
Buyer1 -> ExerciseCmd CreateQuoteRequest with quoteInfos [PID:100, Seller 1]
Seller1 -> Accept QuoteRequest
Buyer1 -> AcceptQuote
(below is stripped out model)
Main.daml
-- Copyright (c) 2020 The DAML Authors. All rights reserved.
-- SPDX-License-Identifier : Apache-2.0
module Main where
import Prelude hiding (submit)
--------------------------------------------------------------------
-- Data Types
--------------------------------------------------------------------
-- Product
data Product = Product
with
productId : Text
productName : Text
modelNumber : Text
productDetails : Text
productURL : Text
deriving (Eq, Show)
-- Items in a Quote
data QuoteRequestItem = QuoteRequestItem
with
product : Product
productQty : Int
deriving (Eq, Show)
-- PO terms
data PurchaseOrderTerms = PurchaseOrderTerms
with
buyerAgent : Party
deriving (Eq, Show)
-- Shipping information
data QuoteInfo = QuoteInfo
with
quoteRefNum : Text
dueDate : Date
buyer : Party
seller : Party
items : [QuoteRequestItem]
deriving (Eq, Show)
----------------------------------------------------------
-- Model
----------------------------------------------------------
----------------------------------------------------------
-- User Role
----------------------------------------------------------
template UserRole
with
userParty : Party
role : Text
where
signatory userParty
----------------------------------------------------------
-- Network
----------------------------------------------------------
template Network
with
operator : Party
where
signatory operator
controller operator can
controller operator can
-- Create Buyer
nonconsuming InviteBuyer : ContractId BuyerInvitation -- persist/not single use as need multiple
with
buyer : Party
do
create BuyerInvitation with operator, buyer
-- Create Seller
nonconsuming InviteSeller : ContractId SellerInvitation -- persist/not single use as need multiple
with
seller : Party
do
create SellerInvitation with operator, seller --, publicPartyRole
-- Create Product
nonconsuming CreateProductCard : ProductCard -- persist/not single use as need multiple
with
product : Product
do
pId <- create ProductCard with operator, product
fetch pId
----------------------------------------------------------
-- Product item
----------------------------------------------------------
template ProductCard
with
product : Product
operator : Party
where
signatory operator
key (operator, product):(Party, Product)
maintainer key._1
----------------------------------------------------------
-- BuyerInvitation
----------------------------------------------------------
template BuyerInvitation
with
buyer : Party
operator : Party
where
signatory operator
controller buyer can
AcceptBuyerInvitation : ContractId BuyerRole
do
create UserRole with userParty = buyer, role = "BUYER"
create BuyerRole with buyer, operator
----------------------------------------------------------
-- SellerInvitation
----------------------------------------------------------
template SellerInvitation
with
seller : Party
operator : Party
-- publicPartyRole : Party
where
signatory operator
controller seller can
AcceptSellerInvitation : ContractId SellerRole
do
create UserRole with userParty = seller, role = "SELLER"
create SellerRole with seller, operator
----------------------------------------------------------
-- Buyer Actions
----------------------------------------------------------
template BuyerRole
with
buyer : Party
operator : Party
where
signatory operator, buyer
key (buyer):(Party)
maintainer key
controller buyer can
nonconsuming CreateQuoteRequest : [ContractId QuoteRequest]
with
quoteInfos : [QuoteInfo]
do
mapA (\quoteInfo -> create QuoteRequest with quoteInfo) quoteInfos
nonconsuming InviteBuyerAgent : ContractId BuyerAgentInvitation
with
buyerAgent : Party
do
create BuyerAgentInvitation with buyer, buyerAgent
----------------------------------------------------------
-- BuyerAgentInvitation
----------------------------------------------------------
template BuyerAgentInvitation
with
buyer : Party
buyerAgent : Party
where
signatory buyer
controller buyerAgent can
AcceptBuyerAgentInvitation : ContractId BuyerAgentRole
do
create UserRole with userParty = buyerAgent, role = "BUYER_AGENT"
create BuyerAgentRole with buyer, buyerAgent
----------------------------------------------------------
-- BuyerAgent Role
----------------------------------------------------------
template BuyerAgentRole
with
buyer : Party
buyerAgent : Party
where
signatory buyer, buyerAgent
----------------------------------------------------------
-- Seller Actions
----------------------------------------------------------
template SellerRole
with
seller : Party
operator : Party
where
signatory operator, seller
----------------------------------------------------------
-- RFQ
----------------------------------------------------------
template QuoteRequest
with
quoteInfo : QuoteInfo
where
signatory quoteInfo.buyer
controller quoteInfo.seller can
AcceptQuoteRequest : ContractId Quote
with
quotedPrice : Decimal
quotedDate : Date
do
create Quote with quoteInfo, quotedPrice, quotedDate
RejectQuoteRequest : ()
do
return ()
controller quoteInfo.buyer can
CancelQuoteRequest : ()
do
return ()
----------------------------------------------------------
-- Accepted Quote
----------------------------------------------------------
template Quote
with
quoteInfo : QuoteInfo
quotedPrice : Decimal
quotedDate : Date
where
signatory quoteInfo.seller, quoteInfo.buyer
-- controller quoteInfo.buyer can
-- AcceptQuote : ContractId PurchaseOrder
-- with
-- purchaseOrderTerms : PurchaseOrderTerms
-- do
-- create PurchaseOrder with quote=this, purchaseOrderTerms