CARVIEW |
Select Language
HTTP/2 200
date: Sat, 11 Oct 2025 22:51:28 GMT
content-type: text/html; charset=UTF-8
server: cloudflare
x-frame-options: DENY
x-content-type-options: nosniff
x-xss-protection: 1;mode=block
vary: accept-encoding
cf-cache-status: DYNAMIC
content-encoding: gzip
set-cookie: _csrf-frontend=23e64a2dbe6a5d79f02deca9dee67eb3e2db484c919a8d1790c9557d0f35209da%3A2%3A%7Bi%3A0%3Bs%3A14%3A%22_csrf-frontend%22%3Bi%3A1%3Bs%3A32%3A%22_vOz2gjjl96rkYg_ZFKy9KecUqyjmMqG%22%3B%7D; HttpOnly; Path=/
cf-ray: 98d1ec1afbd1b080-BLR
package mainimport ( "database/sql" "fmt" "log" _ "github.com/matt - Pastebin.com
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "database/sql"
- "fmt"
- "log"
- _ "github.com/mattn/go-sqlite3"
- "github.com/nats-io/nats.go"
- )
- // Storage — структура хранилища с клиентом *sql.DB
- type Storage struct {
- db *sql.DB
- }
- // NewStorage — конструктор хранилища, сам создает клиент *sql.DB
- func NewStorage(dsn string) (*Storage, error) {
- db, err := sql.Open("sqlite3", dsn)
- if err != nil {
- return nil, err
- }
- s := &Storage{
- db: db,
- }
- return s, nil
- }
- func (s *Storage) Set(key, value string) error {
- _, err := s.db.Exec(`CREATE TABLE IF NOT EXISTS data (k TEXT PRIMARY KEY, v TEXT)`)
- if err != nil {
- return err
- }
- _, err = s.db.Exec(`INSERT OR REPLACE INTO data(k, v) VALUES (?, ?)`, key, value)
- if err != nil {
- return err
- }
- return nil
- }
- func (s *Storage) Get(key string) (string, error) {
- row := s.db.QueryRow(`SELECT v FROM data WHERE k = ?`, key)
- var value string
- err := row.Scan(&value)
- if err != nil {
- return "", err
- }
- return value, nil
- }
- // NATS — структура NATS с клиентом *nats.Conn
- type NATS struct {
- conn *nats.Conn
- }
- // NewNATS — конструктор, сам создает клиента *nats.Conn
- func NewNATS(url string) (*NATS, error) {
- conn, err := nats.Connect(url)
- if err != nil {
- return nil, err
- }
- n := &NATS{
- conn: conn,
- }
- return n, nil
- }
- func (n *NATS) Publish(subject, message string) error {
- err := n.conn.Publish(subject, []byte(message))
- if err != nil {
- return err
- }
- return nil
- }
- // Service — бизнес логика
- type Service struct {
- storage *Storage
- nats *NATS
- }
- func NewService(storage *Storage, nats *NATS) *Service {
- s := &Service{
- storage: storage,
- nats: nats,
- }
- return s
- }
- func (s *Service) SaveData(key, value string) error {
- err := s.storage.Set(key, value)
- if err != nil {
- return err
- }
- err = s.nats.Publish("updates", fmt.Sprintf("%s=%s", key, value))
- if err != nil {
- return err
- }
- return nil
- }
- // Handlers — структура хендлеров
- type Handlers struct {
- service *Service
- }
- func NewHandlers(service *Service) *Handlers {
- h := &Handlers{
- service: service,
- }
- return h
- }
- func (h *Handlers) HandleRequest(key, value string) error {
- err := h.service.SaveData(key, value)
- if err != nil {
- return err
- }
- fmt.Println("Request handled")
- return nil
- }
- func main() {
- storage, err := NewStorage(":memory:")
- if err != nil {
- log.Fatal(err)
- }
- natsConn, err := NewNATS(nats.DefaultURL)
- if err != nil {
- log.Fatal(err)
- }
- service := NewService(storage, natsConn)
- handlers := NewHandlers(service)
- err = handlers.HandleRequest("foo", "bar")
- if err != nil {
- log.Fatal(err)
- }
- value, err := storage.Get("foo")
- if err != nil {
- log.Fatal(err)
- }
- fmt.Printf("Stored value: %s\n", value)
- }
Advertisement
Add Comment
Please, Sign In to add comment
-
⭐✅ Exploit 2500$ in 15 Minutes⭐⭐⭐ W
JavaScript | 4 sec ago | 0.25 KB
-
⭐⭐⭐Make $15OO in 2O minutesV G⭐⭐
Java | 7 sec ago | 0.10 KB
-
📌 Swapzone +37% glitch
JavaScript | 9 sec ago | 0.24 KB
-
✅⭐ Make huge profits on trading ⭐⭐ 7
JavaScript | 11 sec ago | 0.25 KB
-
Free Crypto Method (NEVER SEEN BEFORE)⭐⭐ W
JavaScript | 13 sec ago | 0.25 KB
-
📝 Exchange profit method
JavaScript | 19 sec ago | 0.24 KB
-
⭐✅ Marketplace Glitch ✅ Working ✅ NEVER SEEN...
JavaScript | 20 sec ago | 0.25 KB
-
⭐⭐⭐Profit Method⭐⭐
Java | 21 sec ago | 0.10 KB
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand