Skip to content

Commit

Permalink
delete cache
Browse files Browse the repository at this point in the history
  • Loading branch information
skript023 committed May 13, 2024
1 parent 7dbfbd6 commit 75305c3
Show file tree
Hide file tree
Showing 14 changed files with 113 additions and 226 deletions.
16 changes: 16 additions & 0 deletions config/gbt.backend
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
server {
# Listen on port 80
listen 80;
server_name gaboot-server.rena.my.id;

# Define location for forwarding requests to your C++ application
location / {
proxy_pass http://localhost:5000; # Adjust the port based on your >
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}

# Additional configuration if needed
}
74 changes: 26 additions & 48 deletions src/module/banner/services/banner_service.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@ namespace gaboot
{
banner_service::banner_service()
{
this->load_cache();

}
banner_service::~banner_service()
{
m_cache_banner.clear();

}
HttpResponsePtr banner_service::findAll(HttpRequestPtr const& req)
{
Expand All @@ -23,9 +23,7 @@ namespace gaboot
const size_t limit = limitParam.empty() && !util::is_numeric(limitParam) ? 10 : stoull(limitParam);
const size_t page = pageParam.empty() && !util::is_numeric(pageParam) ? 0 : stoull(pageParam) - 1;

this->load_cache();

const auto banners = m_cache_banner.limit(limit).offset(page * limit).find_all();
const auto banners = db().orderBy(Banners::Cols::_name).limit(limit).offset(page * limit).findAll();

if (banners.empty())
{
Expand Down Expand Up @@ -57,11 +55,7 @@ namespace gaboot
throw BadRequestException("Requirement doesn't match");
}

this->load_cache();

auto banner = m_cache_banner.find(id);

if (!banner) throw NotFoundException("Unable retrieve banner detail");
auto banner = db().findByPrimaryKey(id);

m_response.m_message = "Success retrieve banner data";
m_response.m_success = true;
Expand All @@ -74,78 +68,62 @@ namespace gaboot
{
TRY_CLAUSE
{
Banners banner;

if (id.empty())
{
LOG(WARNING) << "ID is empty or ID is not numeric";

throw BadRequestException("Parameters requirement doesn't match");
}

this->load_cache();
Banners banner = db().findByPrimaryKey(id);

if (!m_cache_banner.find(id, &banner))
{
std::filesystem::path file(*banner.getImagePath());
std::filesystem::path file(*banner.getImagePath());

if (!std::filesystem::exists(file))
{
LOG(WARNING) << "File at " << file.lexically_normal() << " doesn't exist in server";

m_response.m_message = "Unable to retreive banner picture, please upload your banner picture";
m_response.m_success = false;
if (!std::filesystem::exists(file))
{
LOG(WARNING) << "File at " << file.lexically_normal() << " doesn't exist in server";

auto response = HttpResponse::newHttpJsonResponse(m_response.to_json());
response->setStatusCode(k404NotFound);
m_response.m_message = "Unable to retreive banner picture, please upload your banner picture";
m_response.m_success = false;

return response;
}
auto response = HttpResponse::newHttpJsonResponse(m_response.to_json());
response->setStatusCode(k404NotFound);

if (auto image = banner.getImagePath(); image && !image->empty())
return HttpResponse::newFileResponse(*banner.getImagePath());
return response;
}

throw NotFoundException("Unable to retreive banner image");
return HttpResponse::newFileResponse(*banner.getImagePath());
} EXCEPT_CLAUSE
}
HttpResponsePtr banner_service::getThumbnail(HttpRequestPtr const& req, std::string&& id)
{
TRY_CLAUSE
{
Banners banner;

if (id.empty())
{
LOG(WARNING) << "ID is empty or ID is not numeric";

throw BadRequestException("Parameters requirement doesn't match");
}

this->load_cache();
Banners banner = db().findByPrimaryKey(id);

if (m_cache_banner.find(id, &banner))
{
std::filesystem::path file(*banner.getThumbnailPath());

if (!std::filesystem::exists(file))
{
LOG(WARNING) << "File at " << file.lexically_normal() << " doesn't exist in server";
std::filesystem::path file(*banner.getThumbnailPath());

m_response.m_message = "Unable to retreive banner picture, please upload your banner picture";
m_response.m_success = false;
if (!std::filesystem::exists(file))
{
LOG(WARNING) << "File at " << file.lexically_normal() << " doesn't exist in server";

auto response = HttpResponse::newHttpJsonResponse(m_response.to_json());
response->setStatusCode(k404NotFound);
m_response.m_message = "Unable to retreive banner picture, please upload your banner picture";
m_response.m_success = false;

return response;
}
auto response = HttpResponse::newHttpJsonResponse(m_response.to_json());
response->setStatusCode(k404NotFound);

if (auto image = banner.getImagePath(); image && !image->empty())
return HttpResponse::newFileResponse(*banner.getThumbnailPath());
return response;
}

throw NotFoundException("Unable to retreive banner image");
return HttpResponse::newFileResponse(*banner.getThumbnailPath());
} EXCEPT_CLAUSE
}
}
34 changes: 6 additions & 28 deletions src/module/cart/services/cart_service.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,6 @@

namespace gaboot
{
cart_service::cart_service()
{
this->load_cache();
}

cart_service::~cart_service() noexcept
{
m_cache_cart.clear();
}

HttpResponsePtr cart_service::create(HttpRequestPtr const &req)
{
TRY_CLAUSE
Expand Down Expand Up @@ -63,9 +53,7 @@ namespace gaboot
auto customerCallback = [customer](const Carts& entry) -> bool { return entry.getValueOfCustomerId() == customer; };
auto productCallback = [product](const Carts& entry) -> bool { return entry.getValueOfProductId() == product; };

this->load_cache();

auto carts = !customer.empty() ? m_cache_cart.find(customerCallback) : !product.empty() ? m_cache_cart.find(productCallback) : m_cache_cart.limit(limit).offset(page * limit).find_all();
auto carts = !customer.empty() ? db().findBy(Criteria(Carts::Cols::_product_id, CompareOperator::EQ, product)) : !product.empty() ? db().findBy(Criteria(Carts::Cols::_customer_id, CompareOperator::EQ, customer)) : m_cache_cart.limit(limit).offset(page * limit).find_all();

if (carts.empty())
{
Expand All @@ -92,11 +80,7 @@ namespace gaboot
throw BadRequestException("Parameter is invalid");
}

this->load_cache();

auto cart = m_cache_cart.find(id);

if (!cart) throw NotFoundException("Cart data is not found");
auto cart = db().findByPrimaryKey(id);

m_response.m_message = "Success retrieve cart data";
m_response.m_success = true;
Expand All @@ -114,17 +98,13 @@ namespace gaboot
if (id.empty())
throw BadRequestException("Parameter is invalid");

this->load_cache();
auto cart = db().findByPrimaryKey(id);

auto cart = m_cache_cart.find(id);
cart.updateByJson(*json);

cart->updateByJson(*json);

if (!db().update(*cart) || !m_cache_cart.update(id, *cart))
if (!db().update(cart))
throw BadRequestException("Unable to update non-existing cart");

m_cache_cart.clear();

m_response.m_message = "Success update cart data.";
m_response.m_success = true;

Expand All @@ -138,9 +118,7 @@ namespace gaboot
if (id.empty())
throw BadRequestException("Parameter is invalid");

this->load_cache();

if (!db().deleteByPrimaryKey(id) || !m_cache_cart.remove(id))
if (!db().deleteByPrimaryKey(id))
throw BadRequestException("Unable delete non-existing cart");

m_response.m_message = "Success delete cart";
Expand Down
4 changes: 2 additions & 2 deletions src/module/cart/services/cart_service.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ namespace gaboot
{
Mapper<Carts> db() { return Mapper<Carts>(DATABASE_CLIENT); }
public:
explicit cart_service();
~cart_service() noexcept;
explicit cart_service() = default;
~cart_service() noexcept = default;

cart_service(cart_service const& that) = delete;
cart_service& operator=(cart_service const& that) = delete;
Expand Down
Loading

0 comments on commit 75305c3

Please sign in to comment.