From f2fb8611f5191e5823322138cc7f7c67687e3dec Mon Sep 17 00:00:00 2001
From: Kravets <57632712+kravetsone@users.noreply.github.com>
Date: Wed, 10 Jul 2024 23:56:44 +0300
Subject: [PATCH] chore: improve README

---
 README.md          | 57 ++++++++++++++++++++++++++++++++++++++++++++++
 examples/simple.ts |  3 +--
 2 files changed, 58 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index 359302b..ea4b48b 100644
--- a/README.md
+++ b/README.md
@@ -26,12 +26,69 @@ console.log(result);
 ### Фичи
 
 -   Генерируется исходя из **OpenAPI** спецификации
+-   Очень удобная работа с нотификацией (webhook) с умными фильтрами
+-   Имеет в себе [webhook адаптеры для самых популярных фреймворков](#поддерживаемые-webhook-адаптеры)
 -   Отличная документация кода с помощью **JSDoc** (сгенерировано из **OpenAPI**)
 -   Современная и **type-safe**
 -   0 зависимостей
 -   Берёт работу с [подписью запроса](https://www.tbank.ru/kassa/dev/payments/index.html#section/Podpis-zaprosa) на себя
 -   [Есть на JSR](https://jsr.io/@kravets/t-kassa-api)
 
+### Webhook
+
+Пример использования webhook с фреймворком [Hono](https://hono.dev/)
+
+```ts
+import { Hono } from "hono";
+import { TKassa, webhookHandler, filters } from "t-kassa-api";
+
+const ткасса = new TKassa(process.env.TERMINAL_KEY, process.env.PASSWORD);
+
+ткасса.on(
+    filters.and(
+        filters.equal("Status", "SUCCESS"),
+        filters.notNullable("RebillId")
+    ),
+    (context) => {
+        // при этом типы понимают фильтры
+    }
+);
+
+const app = new Hono();
+
+app.get("/", webhookHandler("hono"));
+```
+
+### Поддерживаемые webhook адаптеры
+
+-   [Elysia](https://elysiajs.com/)
+-   [Fastify](https://fastify.dev/)
+-   [Hono](https://hono.dev/)
+-   [Express](https://expressjs.com/)
+-   [Koa](https://koajs.com/)
+-   [node:http](https://nodejs.org/api/http.html)
+-   [Bun.serve](https://bun.sh/docs/api/http)
+-   [std/http (Deno.serve)](https://docs.deno.com/runtime/manual/runtime/http_server_apis#http-server-apis)
+
+или любой другой фреймворк
+
+```ts
+// a non-existing framework for the example
+import { App } from "some-http-framework";
+import { TKassa } from "t-kassa-api";
+
+const ткасса = new TKassa(process.env.TERMINAL_KEY, process.env.PASSWORD, {
+    server: "https://rest-api-test.tinkoff.ru",
+});
+
+const app = new App().post("/t-kassa", async (req) => {
+    // req.body must be json equivalent to Webhook notification body
+    await ткасса.emit(req.body);
+});
+
+app.listen(80);
+```
+
 ### TODO:
 
 -   поддержать `application/x-www-form-urlencoded`
diff --git a/examples/simple.ts b/examples/simple.ts
index 8536878..ef7bb72 100644
--- a/examples/simple.ts
+++ b/examples/simple.ts
@@ -11,8 +11,7 @@ const ткасса = new TKassa(
 ткасса.on(
 	filters.and(
 		filters.equal("Status", "SUCCESS"),
-		filters.equal("ErrorCode", "1"),
-		filters.notNullable("FnNumber"),
+		filters.notNullable("RebillId"),
 	),
 	(context) => {
 		// ^?