From be05235a6e206e25b2d6f1af4bb9bf1ef832bbf8 Mon Sep 17 00:00:00 2001 From: Aditya Sharma Date: Thu, 16 Apr 2020 17:40:22 +0530 Subject: [PATCH] feat(clover-go): add CloverGo plugin (#3376) * feat(clovergo): add CloverGo plugin * fix(clovergo): remove template comments and added dscription * fix(clovergo): Remove template comments, empty property and returned response interface * fix(clovergo): Updated comments with correct returned response interface --- src/@ionic-native/plugins/clover-go/index.ts | 105 +++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 src/@ionic-native/plugins/clover-go/index.ts diff --git a/src/@ionic-native/plugins/clover-go/index.ts b/src/@ionic-native/plugins/clover-go/index.ts new file mode 100644 index 000000000..ebc0b1544 --- /dev/null +++ b/src/@ionic-native/plugins/clover-go/index.ts @@ -0,0 +1,105 @@ +import { Injectable } from '@angular/core'; +import { Plugin, Cordova, CordovaProperty, CordovaInstance, InstanceProperty, IonicNativePlugin } from '@ionic-native/core'; +import { Observable } from 'rxjs'; + +export interface Response { + type?: string; + message?: string; + reason?: string; +} +export interface InitResponse extends Response { + merchantName?: string; +} +export interface SaleResponse extends Response { + paymentId?: string; + transactionType?: string; + entryType?: string; + cardFirst6?: string; + cardLast4?: string; +} + +/** + * @name Clover Go + * @description + * This plugin connect to Clover Go payment device and process payments. + * + * @usage + * ```typescript + * import { CloverGo } from '@ionic-native/clover-go/ngx'; + * + * + * constructor(private cloverGo: CloverGo) { } + * + * ... + * + * + * this.cloverGo.init(configuration) + * .then((res: any) => console.log(res)) + * .catch((error: any) => console.error(error)); + * + * this.cloverGo.connect() + * .then((res: any) => console.log(res)) + * .catch((error: any) => console.error(error)); + * + * this.cloverGo.disconnect() + * .then((res: any) => console.log(res)) + * .catch((error: any) => console.error(error)); + * + * this.cloverGo.sale(saleInfo) + * .then((res: any) => console.log(res)) + * .catch((error: any) => console.error(error)); + * + * ``` + */ +@Plugin({ + pluginName: 'CloverGo', + plugin: 'cordova-plugin-clovergo', + pluginRef: 'clovergo', + repo: 'https://github.com/hotwax/cordova-plugin-clovergo', + install: 'ionic plugin add cordova-plugin-clovergo', + platforms: ['Android', 'iOS'] +}) +@Injectable() +export class CloverGo extends IonicNativePlugin { + + /** + * This function initialises Clover Go SDK + * @param configuration {object} + * @return {Promise} + */ + @Cordova() + init(configuration: object): Promise { + return; + } + + /** + * This function connects to available clover go device + * + * @return {Promise} + */ + @Cordova() + connect(): Promise { + return; + } + + /** + * This function disconnects to available clover go device + * + * @return {Promise} + */ + @Cordova() + disconnect(): Promise { + return; + } + + /** + * This function initiate sale for Clover Go device + * @param saleInfo {object} + * @return {Promise} + */ + @Cordova() + sale(saleInfo: object): Promise { + return; + } + +}