- final ResponseFactory responseFactory = new ResponseFactory(
- ReadDataTransactionUtil.readData(RestconfDataServiceConstant.ReadData.CONFIG, transactionNode));
- final CheckedFuture<Void, TransactionCommitFailedException> submitData = submitData(path, schemaCtxRef.get(),
- transactionNode.getTransactionChain(), payload.getData(), insert, point);
+ final SchemaContext schemaContext = schemaCtxRef.get();
+
+ final DOMDataReadWriteTransaction readWriteTransaction =
+ transactionNode.getTransactionChain().newReadWriteTransaction();
+
+ final CheckedFuture<Boolean, ReadFailedException> existsFuture =
+ readWriteTransaction.exists(LogicalDatastoreType.CONFIGURATION, path);
+ final FutureDataFactory<Boolean> existsResponse = new FutureDataFactory<>();
+ FutureCallbackTx.addCallback(existsFuture, RestconfDataServiceConstant.PutData.PUT_TX_TYPE, existsResponse);
+
+ final ResponseFactory responseFactory = new ResponseFactory(existsResponse.result ? Status.OK : Status.CREATED);
+ final CheckedFuture<Void, TransactionCommitFailedException> submitData = submitData(path, schemaContext,
+ transactionNode.getTransactionChain(), readWriteTransaction, payload.getData(), insert, point);