42 lines
985 B
C++
42 lines
985 B
C++
#ifndef USERS_REPOSITORY_H
|
|
#define USERS_REPOSITORY_H
|
|
|
|
#include "base_sql_table_repository.h"
|
|
#include "users_repository_interface.h"
|
|
|
|
#include <QSqlDatabase>
|
|
|
|
class UsersRepository : public UsersRepositoryInterface,
|
|
public BaseSqlTableRepository {
|
|
public:
|
|
explicit UsersRepository(QSqlDatabase &db, QObject *parent);
|
|
|
|
// CRUD operations
|
|
// clang-format off
|
|
|
|
RepositoryResult
|
|
createUser(const CreateUserRequest &request) override;
|
|
|
|
RepositoryResult
|
|
getUserById(qint32 userId, UserDTO &user) const override;
|
|
|
|
RepositoryResult
|
|
getUserByUsername(const QString &username, UserDTO &user) const override;
|
|
|
|
RepositoryResult
|
|
getAllUsers(QVector<UserDTO> &users) const override;
|
|
|
|
RepositoryResult
|
|
updateUser(const UpdateUserRequest &request) override;
|
|
|
|
RepositoryResult
|
|
deleteUserById(qint32 userId) override;
|
|
|
|
// clang-format on
|
|
|
|
private:
|
|
UserDTO mapQueryToDTO(const QSqlQuery &query) const;
|
|
};
|
|
|
|
#endif // USERS_REPOSITORY_H
|