-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbackend.cpp
More file actions
115 lines (102 loc) · 3.24 KB
/
Copy pathbackend.cpp
File metadata and controls
115 lines (102 loc) · 3.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#include "backend.h"
#include "database.h"
backEnd::backEnd(QObject *parent)
: QObject{parent}
{
m_sourceManager = new SourceManager(this);
connect(m_sourceManager, &SourceManager::ready, this, [this]() {
QJsonArray musics = m_sourceManager->getMusicsData();
qDebug() << "Backend: Les données sont prêtes!" << musics.size() << "musiques";
// On informe l'UI que c'est un succès !
emit sourceAddedSuccess();
});
m_updateChecker = new UpdateChecker(this);
connect(m_updateChecker, &UpdateChecker::updateAvailable,
this, &backEnd::updateAvailable);
}
/**
* @brief Call every neccessary functions at the launch of the app
* @param No params needed
* @return Return the result:
* 0 -> Success
* 1 -> Database initialisation error
*/
int backEnd::init(){
database database;
if (!database.createDatabase()) {
return 1;
}
return 0;
}
/**
* @brief Function called if the AddSource button is checked
* @param QString URL (the url of the source)
* @return bool if success -> true else -> false
*/
bool backEnd::addSource(QString url) {
m_sourceManager->addSource(url);
// Les données seront traitées automatiquement via le signal musicsReady
return true;
}
/**
* @brief Function that call database::getAddedSources exchange between UI and backend
* @return The content of the table sources
*/
QList<QMap<QString, QVariant>> backEnd::getSources() {
database database;
QList<QMap<QString, QVariant>> result = database.getAddedSources() ;
return result;
}
/**
* @brief backEnd::deleteSource call database::deleteSource(const int id)
* @param id
* @return true -> success; false -> failure
*/
bool backEnd::deleteSource(const int id) {
database database;
if(!database.deleteSource(id)) {
qWarning() << "Error when calling function deleteSource";
return false;
}
return true;
}
void backEnd::searchMusic(const QString search) {
qDebug() << "Calling function";
database database;
QList<QMap<QString, QVariant>> result = database.searchMusic(search);
QVariantList variantList;
for (const auto &map : result) {
QVariantMap variantMap;
for (auto it = map.constBegin(); it != map.constEnd(); ++it) {
variantMap[it.key()] = it.value();
}
variantList.append(variantMap);
}
m_searchResults = variantList;
emit searchResultsChanged();
}
// Store actual musics infos to show it in GUI
void backEnd::setInfosTo(const QString name, const QString artist, const QString cover) {
private_name = name;
private_artist = artist;
private_cover = cover;
}
void backEnd::randomMusics() {
qDebug() << "Calling function";
database database;
QList<QMap<QString, QVariant>> result = database.get10RandomMusics();
QVariantList variantList;
for (const auto &map : result) {
QVariantMap variantMap;
for (auto it = map.constBegin(); it != map.constEnd(); ++it) {
variantMap[it.key()] = it.value();
}
variantList.append(variantMap);
}
m_randomMusics = variantList;
emit randomMusicsChanged();
}
void backEnd::checkForUpdates() {
qDebug() << "Calling function in backend";
m_updateChecker->checkForUpdates();
}