crisp-api
Version:
Crisp API wrapper for Node - official, maintained by Crisp
117 lines (116 loc) • 3.76 kB
TypeScript
/**************************************************************************
* IMPORTS
***************************************************************************/
import BaseResource from "./BaseResource";
/**************************************************************************
* TYPES
***************************************************************************/
export type PluginSubscription = {
id?: string;
urn?: string;
type?: string;
category?: string;
name?: string;
summary?: string;
price?: number;
plans?: PluginSubscriptionPlan[];
icon?: string;
website_url?: string;
contact_url?: string;
terms_url?: string;
privacy_url?: string;
help_url?: string;
video_url?: string;
configurable?: boolean;
since?: string;
active?: boolean;
website_id?: string;
card_id?: string;
};
export type PluginSubscriptionPlan = {
id?: string;
name?: string;
price?: number;
};
export type PluginSubscriptionSettings = {
plugin_id?: string;
website_id?: string;
token?: string;
schema?: object;
settings?: object;
settings_form_url?: string;
callback_url?: string;
};
export type PluginSubscriptionChannelForward = {
namespace?: string;
identifier?: string;
payload?: object;
};
export type PluginSubscriptionEventDispatch = {
name?: string;
data?: object;
};
/**************************************************************************
* CLASSES
***************************************************************************/
/**
* Crisp PluginSubscription Resource
*/
declare class PluginSubscriptionService extends BaseResource {
/**
* List All Active Subscriptions
*/
listAllActiveSubscriptions(): Promise<PluginSubscription[]>;
/**
* List Subscriptions For A Website
*/
listSubscriptionsForWebsite(websiteID: string): Promise<PluginSubscription[]>;
/**
* Get Subscription Details
*/
getSubscriptionDetails(websiteID: string, pluginID: string): Promise<PluginSubscription>;
/**
* Subscribe Website To Plugin
*/
subscribeWebsiteToPlugin(websiteID: string, pluginID: string): Promise<any>;
/**
* Unsubscribe Plugin From Website
*/
unsubscribePluginFromWebsite(websiteID: string, pluginID: string): Promise<any>;
/**
* Get Subscription Settings
*/
getSubscriptionSettings(websiteID: string, pluginID: string): Promise<PluginSubscriptionSettings>;
/**
* Save Subscription Settings
*/
saveSubscriptionSettings(websiteID: string, pluginID: string, settings: object): Promise<any>;
/**
* Update Subscription Settings
*/
updateSubscriptionSettings(websiteID: string, pluginID: string, settings: object): Promise<any>;
/**
* Get Plugin Usage Bills
*/
getPluginUsageBills(websiteID: string, pluginID: string): Promise<any>;
/**
* Report Plugin Usage To Bill
*/
reportPluginUsageToBill(websiteID: string, pluginID: string, usage: object): Promise<any>;
/**
* Get Plugin Attest Provenance
*/
getPluginAttestProvenance(websiteID: string, pluginID: string): Promise<any>;
/**
* Forward Plugin Payload To Channel
*/
forwardPluginPayloadToChannel(websiteID: string, pluginID: string, payload: PluginSubscriptionChannelForward): Promise<any>;
/**
* Dispatch Plugin Event
*/
dispatchPluginEvent(websiteID: string, pluginID: string, payload: PluginSubscriptionEventDispatch): Promise<any>;
}
/**************************************************************************
* EXPORTS
***************************************************************************/
export default PluginSubscriptionService;