From 6565be735d99352c36c5df24ae8bd85a0a982a86 Mon Sep 17 00:00:00 2001 From: Kharec Date: Thu, 18 Dec 2025 07:27:55 +0100 Subject: [PATCH] feat: add basic db logic --- lib/Urupam/DB.pm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 lib/Urupam/DB.pm diff --git a/lib/Urupam/DB.pm b/lib/Urupam/DB.pm new file mode 100644 index 0000000..34235fc --- /dev/null +++ b/lib/Urupam/DB.pm @@ -0,0 +1,36 @@ +package Urupam::DB; + +use Mojo::Base -base; +use Mojo::Promise; +use Mojo::Redis2; + +has redis => sub { + Mojo::Redis2->new( url => $ENV{REDIS_URL} || 'redis://localhost:6379' ); +}; + +sub get { + my ( $self, $key ) = @_; + my $promise = Mojo::Promise->new; + $self->redis->get( + $key => sub { + my ( $redis, $err, $value ) = @_; + $err ? $promise->reject($err) : $promise->resolve($value); + } + ); + return $promise; +} + +sub set { + my ( $self, $key, $value ) = @_; + my $promise = Mojo::Promise->new; + $self->redis->set( + $key => $value, + sub { + my ( $redis, $err, $result ) = @_; + $err ? $promise->reject($err) : $promise->resolve($result); + } + ); + return $promise; +} + +1;