Socket
Socket
Sign inDemoInstall

node-vkcoinapi

Package Overview
Dependencies
121
Maintainers
1
Versions
17
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.6.1 to 1.7.0

68

index.js

@@ -183,3 +183,3 @@ const WebSocket = require('ws');

);
if (result.response === 'ON') {

@@ -213,2 +213,33 @@ this.app.use(

}
/**
* Возвращает middleware для Express
* @param {String} [path] Путь для запросов
*/
getExpressMiddleware(path = null) {
this.isStarted = true;
return async (req, res, next) => {
res.sendStatus(200);
if (
path !== null && (
req.path !== path ||
req.method !== 'POST'
)
) {
return next();
}
if (!req.body || typeof req.body !== 'object') {
throw new ReferenceError(
'Не удалось получить `Request.body`'
);
}
this.transferHandler(req.body);
next();
};
}
}

@@ -424,2 +455,37 @@

/**
* Изменяет адрес для получения событий
* @param {String} callback Адрес для получения событий
*/
async setCallback(callback) {
if (!callback) {
throw new ParameterError('callback');
}
const result = await request(
'https://coin-without-bugs.vkforms.ru/merchant/set/',
{
callback,
key: this.key,
merchantId: this.userId,
}
);
if (result.error) {
const { code, message } = result.error;
throw new APIError({
code, message
});
}
return result.response;
}
/**
* Удаляет адрес для получения событий
*/
removeCallback() {
return this.setCallback(null);
}
/**
* @param {Number} coins - Входящее значение коинов

@@ -426,0 +492,0 @@ * @description

2

package.json
{
"name": "node-vkcoinapi",
"version": "1.6.1",
"version": "1.7.0",
"description": "Работа с API VK Coin",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -210,6 +210,36 @@ # node-vkcoinapi

|name|String|Новое имя для магазина|
#
setCallback - Изменяет адрес для получения событий
```js
async function run() {
const result = await vkcoin.api.setCallback(callback);
console.log(result);
}
run().catch(console.error);
```
|Параметр|Тип|Описание|
|-|-|-|
|callback|String|Новый адрес с указанием пути|
#
removeCallback - Удаляет адрес для получения событий
```js
async function run() {
const result = await vkcoin.api.removeCallback();
console.log(result);
}
run().catch(console.error);
```
Параметров не принимает
# Updates
**updates** - Позволяет "прослушивать" события в VK Coin. Пока что я реализовал перехват входящего платежа, но вскоре придумаю что-нибудь ещё. И да, впервые работаю с сокетами :)
### Запуск
Для запуска прослушивания есть 2 метода: startPolling и startWebHook
Для запуска прослушивания есть 3 способа. Longpoll, webhook и отдельный middleware для Express
#

@@ -268,6 +298,46 @@ startPolling - Запускает обмен запросами между клиентом и сервером в режиме реального времени (WebSocket). Является лучшим и быстрым способом получения событий:

При использовании startWebHook, вы лишаетесь многого: получение топов, места, онлайна и информации об объёме рынка. Всё это можно получить при использовании startPolling
#
getExpressMiddleware - Получает функцию цепи middleware для Express.
Перед использованием этого способа, нужно указать VKCOIN'у адрес для получения событий **с указанием пути**:
```js
vkcoin.api.setCallback('http://my-address.ru/vkcoin');
```
Дальше уже можно использовать
```js
const express = require('express');
const app = express();
/**
* Это действие нужно обязательно
* Нужно для получения тела запроса
*/
app.use(express.json());
// Дальше есть два варианта развития событий
// 1: Добавление функции в цепь middleware
app.use(
vkcoin.updates.getExpressMiddleware('/vkcoin')
);
// 2: Или определить функцию на свой роут
app.post(
'/vkcoin',
vkcoin.updates.getExpressMiddleware()
);
// Выбирайте на свой вкус :)
/* Тут ваши действия со слушателем */
```
### События
updates.onTransfer - Перехватывает входящие платежи, принимает один аргумент
**Метод ```updates.onTransfer``` нужно писать после ```updates.startPolling``` или ```updates.startWebHook```, иначе у вас ничего не сработает**
**Метод ```updates.onTransfer``` нужно писать после ```updates.startPolling```, ```updates.startWebHook``` или ```app.use(updates.getExpressMiddleware('/'))```, иначе у вас ничего не сработает**

@@ -285,12 +355,2 @@ ```js

```js
vkcoin.updates.startPolling(console.log).then(() => {
vkcoin.updates.onTransfer((event) => {
console.log(event);
});
});
```
Или
```js
vkcoin.updates.startWebHook({

@@ -307,2 +367,18 @@ url: '123.123.123.123', // Тут ваша ссылка или IP-адрес сервера

Или
```js
async function run() {
await vkcoin.api.setCallback('http://my-address.ru/vkcoin');
app.use(
vkcoin.updates.getExpressMiddleware('/vkcoin')
)
vkcoin.updates.onTransfer((event) => {
console.log(event);
});
}
```
event - Объект, который хранит в себе информацию о платеже:

@@ -309,0 +385,0 @@

@@ -35,2 +35,8 @@ import * as Responses from './responses';

/**
* Возвращает middleware для Express
* @param path Путь для запросов
*/
getExpressMiddleware(path?: string): Function;
/**
*

@@ -98,2 +104,13 @@ * @param callback Функция, принимающая данные перевода

getLink(amount: number, fixation: boolean): string;
/**
* Изменяет адрес для получения событий
* @param {String} callback Адрес для получения событий
*/
setCallback(callback: string): Promise<string>;
/**
* Удаляет адрес для получения событий
*/
removeCallback(): Promise<string>;
}

@@ -100,0 +117,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc