droplet 1.3.0
A multipurpose Discord bot with the hacker in mind
Loading...
Searching...
No Matches
UserRepository.hpp
Go to the documentation of this file.
1/*
2 * (c) Copyright erarnitox.de - All rights reserved
3 * Author: Erarnitox <david@erarnitox.de>
4 *
5 * License: MIT License
6 *
7 * Description:
8 *
9 * Documentation: https://droplet.erarnitox.de/doxygen/html/
10 */
11
12#pragma once
13
14#include <IRepository.hpp>
15#include <cstddef>
16#include <cstdint>
17#include <optional>
18#include <vector>
19
20#include "UserDTO.hpp"
21
23
24//-----------------------------------------------------
25//
26//-----------------------------------------------------
27class UserRepository : public IRepository<UserDTO> {
28 public:
29 explicit UserRepository(DatabaseExecutor& executor);
30
31 [[nodiscard]] bool create(const UserDTO& object) noexcept override;
32
33 [[nodiscard]] bool remove(size_t user_id) noexcept override;
34
35 [[nodiscard]] UserDTO get(size_t user_id) const noexcept override;
36
37 [[nodiscard]] bool update(const UserDTO& object) noexcept override;
38
39 [[nodiscard]] std::vector<UserDTO> getTopTen() const noexcept;
40
41 [[nodiscard]] std::optional<size_t> try_adjust_exp(size_t user_id, std::int64_t delta, size_t min_exp) noexcept;
42
43 private:
44 DatabaseExecutor& executor_;
45};
Definition DatabaseExecutor.hpp:14
Definition IRepository.hpp:36
Definition UserDTO.hpp:20
bool create(const UserDTO &object) noexcept override
Definition UserRepository.cpp:28
UserRepository(DatabaseExecutor &executor)
Definition UserRepository.cpp:22
std::vector< UserDTO > getTopTen() const noexcept
Definition UserRepository.cpp:98
UserDTO get(size_t user_id) const noexcept override
Definition UserRepository.cpp:80
std::optional< size_t > try_adjust_exp(size_t user_id, std::int64_t delta, size_t min_exp) noexcept
Definition UserRepository.cpp:124
bool update(const UserDTO &object) noexcept override
Definition UserRepository.cpp:60
bool remove(size_t user_id) noexcept override
Definition UserRepository.cpp:48