Banking_System_Server  1.0.0
Qt-based banking app for user/admin account management, transactions, secure server communication via PostgreSQL/Supabase.
Request.h
Go to the documentation of this file.
1 
8 #ifndef REQUEST_H
9 #define REQUEST_H
10 
11 #include <QJsonObject>
12 #include <QMutex>
13 #include <QJsonDocument>
14 #include <QJsonArray>
15 #include <QMutexLocker>
16 #include "db.h"
17 
24 class Request
25 {
26 protected:
37  {
38  if (dbManager == nullptr)
39  {
40  qDebug() << "Failed to create instance";
41  return false;
42  }
43 
44  QString dbError;
45 
47  {
48  qDebug() << "Failed to connect to db" << dbError;
49  return false;
50  }
51 
52  return true;
53  }
54 
65  QJsonObject CreateDBConnectionError(QJsonObject& response, QJsonObject& dataObj)
66  {
67  dataObj.insert("status", int(false));
68  dataObj.insert("message", "Internal server error");
69 
70  response.insert("Data", dataObj);
71 
72  QJsonDocument responseDoc(response);
73  QByteArray responseData = responseDoc.toJson();
74 
75  qDebug().noquote() << "<-- DB Connection Error :\n" << responseDoc.toJson(QJsonDocument::Indented);
76 
77  return response;
78  }
79 
90  QJsonObject CreateErrorResponse(QJsonObject& response, QJsonObject& dataObj, QString message)
91  {
92  dataObj.insert("status", int(false));
93  dataObj.insert("message", message);
94 
95  response.insert("Data", dataObj);
96 
97  // Convert response to JSON
98  QJsonDocument responseDoc(response);
99  QByteArray responseData = responseDoc.toJson();
100 
101  qDebug().noquote() << "<-- Error Response :\n" << responseDoc.toJson(QJsonDocument::Indented);
102 
103  return response;
104  }
105 
106 public:
112  virtual ~Request()
113  {
114  }
115 
125  virtual QJsonObject execute(const QJsonObject& jsonObj, QMutex& m) = 0;
126 };
127 
128 #endif // REQUEST_H
Manages database connections and SQL operations.
Definition: db.h:80
static bool checkConnection(QString &error)
Checks the database connection.
Definition: db.cpp:81
The Request class is an abstract base class for handling different types of requests.
Definition: Request.h:25
virtual ~Request()
Virtual destructor for the Request class.
Definition: Request.h:112
virtual QJsonObject execute(const QJsonObject &jsonObj, QMutex &m)=0
Pure virtual method to execute a request.
QJsonObject CreateErrorResponse(QJsonObject &response, QJsonObject &dataObj, QString message)
Creates a generic error JSON response.
Definition: Request.h:90
QJsonObject CreateDBConnectionError(QJsonObject &response, QJsonObject &dataObj)
Creates a JSON response indicating a database connection error.
Definition: Request.h:65
bool isDBConnectionValid(DB::DatabaseManager *dbManager)
Checks if the database connection is valid.
Definition: Request.h:36
Database management classes for handling database connections and operations.