Active subscription type.

This commit is contained in:
Robert C. Martin 2023-06-17 09:10:45 -05:00
parent 1d75b621af
commit b68402f9cc
3 changed files with 44 additions and 11 deletions

View File

@ -1,7 +1,8 @@
(ns more-speech.mem
(:require [clojure.spec.alpha :as s]
[more-speech.types.relay :as relay-type]
[more-speech.types.profile :as profile-type]))
[more-speech.types.profile :as profile-type]
[more-speech.types.active-subscription :as subscription-type]))
;(s/def ::id number?)
;(s/def ::created-at number?)
@ -43,12 +44,15 @@
(s/def ::pubkey number?) ;The public key of the user
(s/def ::keys ::profile-type/profile)
(s/def ::request-hours-ago int?) ;command line argument
(s/def ::websocket-backlog int?) ;number of unprocessed events
(s/def ::mem (s/keys :req-un [::relay-type/relays
::pubkey
::keys]
:opt-un [::request-hours-ago
::websocket-backlog
::active-subscriptions
::subscription-type/active-subscriptions
::tabs-list
::tab-tree-map
::frame

View File

@ -0,0 +1,29 @@
(ns more-speech.types.active-subscription
(:require [clojure.spec.alpha :as s]))
(s/def ::subscription-url string?)
(s/def ::subscription-id string?)
(s/def ::eose #{:close :next-batch}) ;action to perform on EOSE
(s/def ::min-time int?) ;time of earliest event in this batch
(s/def ::max-time int?) ;time of latest event in this batch
(s/def ::last-batch-min-time int?) ;time of earliest event in last batch
(s/def ::back-to int?) ;batching ends when we get here.
(s/def ::since int?) ;earliest requested time for this batch
(s/def ::filter map?) ; other filters as per REQ
(s/def ::event-counter int?) ;number of events in this batch
(s/def ::batch-closed boolean?) ;batch complete EOSE received.
(s/def ::subscription (s/keys :opt-un [::eose
::batch-closed
::min-time
::max-time
::event-counter
::last-batch-min-time
::back-to
::since
::until
::filter
]))
(s/def ::subscriptions (s/or :nil nil?
:subscriptions (s/map-of ::subscription-id ::subscription)))
(s/def ::active-subscriptions (s/or :nil nil?
:subscriptions (s/map-of ::subscription-url ::subscriptions)))

View File

@ -19,12 +19,12 @@
::picture
::public-key
::private-key]
:req-opt [::lud16
::lud06
::banner
::display-name
::website
::nip05
::created-at
::wallet-connect
::password]))
:opt-un [::lud16
::lud06
::banner
::display-name
::website
::nip05
::created-at
::wallet-connect
::password]))