@setarnv/directus-payaw-extension-sdk
v1.0.0
Published
A shared package for Pay.aw integration with Directus Api side extensions.
Readme
Directus Payaw Extension SDK
This package provides a programmatic SDK for working with the pay.aw Directus extension from other Directus API-side extensions. It enables you to create and manage pay.aw payment transactions, check payment status, and perform rollbacks directly in code, without relying on UI flows or manually defining models.
Why use this SDK?
When integrating pay.aw payments into your Directus project, you may want to trigger payments or check statuses from your own custom extensions (for example, a "store" extension). Instead of using the Directus ItemsService directly and manually defining models, this SDK provides:
- Strongly-typed models for pay.aw transactions and vendors
- A service class (
Payaw) that encapsulates all pay.aw extension logic - Methods to create transactions, check status, and perform rollbacks just like the built-in flow operation
- Automatic handling of extension version checks and vendor resolution
Installation
Install the package using npm:
npm install directus-payaw-sharedUsage
Importing the SDK
import Payaw from '@setarnv/directus-payaw-extension-sdk';Creating a Payment Transaction
const payaw = new Payaw(extensionContext);
const transaction = await payaw.sendPaymentRequest(
orderId, // number
userId, // string
amount, // number (in cents)
vendorId, // number | undefined
description // string | undefined
);Checking Payment Status
const status = await payaw.getPaymentStatus(paymentReference);Rolling Back a Payment
await payaw.rollbackPayment(paymentReference, 'Optional rollback comment');API Overview
Payaw class
The main entry point for interacting with pay.aw transactions in code. See the source for full method documentation.
constructor(extensionContext, eventContext?, appType?, walletType?, maxChecks?, checkIntervalMs?)sendPaymentRequest(orderId, userId, amount, vendorId?, description?)getPaymentStatus(paymentReference)rollbackPayment(paymentReference, rollbackComment?)
Models and Types
The SDK exports all pay.aw transaction and vendor types for use in your own code.
Example: Using in a Custom Extension
Suppose you have a "store" Directus extension and want to trigger a pay.aw payment when an order is placed:
import Payaw from '@setarnv/directus-payaw-extension-sdk';
export default ({ services, database, getSchema }) => {
const payaw = new Payaw({ services, database, getSchema });
// ... inside your order logic:
await payaw.sendPaymentRequest(orderId, userId, amount);
};Contributing
Contributions are welcome! Please submit a pull request or open an issue for any enhancements or bug fixes.
License
This project is licensed under the MIT License. See the LICENSE file for more details.
