/
dimamir
/
undb
Обзор
Документация
Войти
/
dimamir
/
undb
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
packages/webhook/src/specifications/webhook-headers.specification.ts
30 строк
970 B
nichenqin
feat: simple webhook ui
30 май 2024, 16:38
30 май 2024, 16:38
0bd1eeb
Код
Авторство
О чём код?
import { CompositeSpecification } from "@undb/domain" import type { Result } from "oxide.ts" import { Ok } from "oxide.ts" import { WebhookHeaders, webhookHeadersSchema } from "../webhook-headers.vo.js" import type { WebhookDo } from "../webhook.js" import type { IWebhookSpecVisitor } from "./interface.js" export class WithWebhookHeaders extends CompositeSpecification<WebhookDo, IWebhookSpecVisitor> { constructor(public readonly webhookHeaders: WebhookHeaders) { super() } static from(headers: Record<string, string>): WithWebhookHeaders { return new WithWebhookHeaders(new WebhookHeaders(webhookHeadersSchema.parse(headers))) } isSatisfiedBy(w: WebhookDo): boolean { return this.webhookHeaders.equals(w.headers) } mutate(w: WebhookDo): Result<WebhookDo, string> { w.headers = this.webhookHeaders return Ok(w) } accept(v: IWebhookSpecVisitor): Result<void, string> { v.headersEqual(this) return Ok(undefined) } }