- На github README на русском, это плохо, надо делать на английском
- Описание "NPM пакет для приложений, награждающих пользователей различных сервисов" недостаточно, сразу не понятно что делает эта штука, какие решает задачи
Viz-awards-gates: Npm пакет для шлюзов наград, часть 1: описание
Здравствуйте. Представляю новый проект, который представляет собой NPM-пакет для разработчиков шлюзов наград.
Ссылки:
- NPM: https://www.npmjs.com/package/viz-awards-gates
- Github: https://github.com/denis-skripnik/viz-awards-gates
Установка:
- В папке вашего node.js приложения выполните команду:
npm install viz-awards-gates - После завершения инсталляции перейдите в node_modules/viz-awards-gates и измените файл config.json: укажите в нём название сервиса (по умолчанию youtube; можно использовать домен сайта, например, myforum.ru), а также логин и активный ключ аккаунта шлюза.
- Сохранив файл, подключите в коде своего приложения. Пример:
const vag = require('viz-awards-gates'); async function noReturn() { await vag.getAwards(); } noReturn(); async function getViz(user, viz_acc, amount) { if (user === true) { // проверяем, что в приложении авторизовался именно тот пользователь сервиса, кого награждали. await wag.addVizAccount(user, viz_acc); // добавляем в базу данных VIZ- аккаунт к существующему пользователю. await vag.withdraw(user, amount); // выводим ему токены. } }
Учитывайте, что проверка авторизации пользователя указанного вами сервиса должна осуществляться на стороне вашего приложения. Данный функционал не был добавлен в пакет, т.к. идентификация отличается от сервиса к сервису.
- Дайте инструкцию пользователю шлюза или внедрите награду в интерфейс. Memo имеет вид: "сервис:логин" (без кавычек), например, youtube:scadens или myforum.ru:login@mail.ru
Функционал:
- Получение из блокчейна наград, адресованных аккаунту шлюза, и их фильтрация по memo (проверка, что заметка соответствует вашему сервису).
- Прибавление или создание баланса в базе данных.
Под прибавлением баланса понимается увеличение суммы в базе данных для конкретного логина.
Под созданием баланса понимается добавление нового логина в БД.
Под логином понимается информация, которая позволяет идентифицировать пользователя: id, email, логин, первый ключ и пр. - Добавление VIZ-аккаунта.
- Вывод – специальная функция (см. пример подключения в разделе установки), которая отправляет накопленный баланс с аккаунта шлюза на аккаунт пользователя в VIZ. При этом можно вывести как всю сумму, так и её часть. Кроме того, ваше приложение может автоматически выводить всю сумму раз в определённое время, получив баланс пользователя и указав его при выводе.
- Существует две базы данных: с последним блоком и со списком пользователей сервиса (в ней указываются логины и их балансы). При желании с ними можно работать.
Функции в index.js:
Экспортированы getAwards, addVizAccount, withdraw и search.
- getAwards - не требует аргументов.
- addVizAccount(user, viz_login) - функция добавления VIZ-аккаунта в базу данных пользователей. Принимает аргументы: логин в БД, логин в VIZ.
Возвращает json, содержащий либо 1 (всё в порядке), либо 0 (аккаунта нет в базе), либо -1 (ошибка). Если значение 1, отправляется message с текстом сообщения об успехе. Если значение 0 или -1, отправляется error с текстом сообщения о несуществующем пользователе (0) или текстом ошибки (-1). - withdraw: логин в сервисе (который содержится в базе данных) и сумма в SHARES без указания "SHARES".
Пример:
ag.withdraw('scadens', 3.168929).
Сумма SHARES не должна быть больше имеющейся у пользователя в базе данных.
Указанный логин в VIZ должен быть в БД.
Возвращает json. Он состоит из code (1, если успех; 0, если аккаунта нет в базе данных; -1, если иная ошибка). - withdrawShares (не требует вызова в приложении, без аргументов).
- search (поиск пользователя в базе). Единственный аргумент - логин пользователя.
Пример:
await vag.search('scadens');
Что не делает viz-awards-gates, а реализует приложение, использующее npm пакет:
- Отправляет уведомление о награждении. Первоначально планировал добавить эту возможность в пакет, но потом понял, что это ни к чему, т.к. в каждом приложении будет свой текст.
- Само определяет подлинность авторизовавшегося пользователя: через oAuth, путём отправки custom_json или memo (блокчейны) или иным способом.
Проведены тесты:
Всё ок.
Всё.
В следующем посте опишу алгоритм интеграции с библиотекой на примере форума.
Если будут вопросы, пишите в комментариях или в telegram: https://t.me/skripnikdenis
[Github](https://github.com/denis-skripnik/viz-awards-gates], NPM
С вами был незрячий программист и делегат VIZ @denis-skripnik.
Отобразить форму комментирования
Комментарии