mirror of
https://github.com/linuxserver/Clarkson.git
synced 2026-01-09 07:01:12 +08:00
191 lines
4.6 KiB
JavaScript
191 lines
4.6 KiB
JavaScript
var db = require("../db/mysql");
|
|
|
|
module.exports = (function() {
|
|
|
|
var find, findAll, findByUsername, findByEmail, create, updatePreferences,
|
|
remove, clearData, promote, demote;
|
|
|
|
find = function(userId, done) {
|
|
|
|
db.get().query("CALL User_GetById(?)", userId, function(error, results) {
|
|
|
|
if (error) {
|
|
return done(error);
|
|
}
|
|
|
|
var sqlUser = results[0][0], user = {
|
|
|
|
id: sqlUser.id,
|
|
email: sqlUser.email,
|
|
username: sqlUser.username,
|
|
password: sqlUser.password,
|
|
admin: sqlUser.admin,
|
|
preferences: {
|
|
|
|
fuelUnit: {
|
|
id: sqlUser.fuelUnitId,
|
|
unit: sqlUser.fuelUnit,
|
|
unitName: sqlUser.fuelUnitName
|
|
},
|
|
distanceUnit: {
|
|
id: sqlUser.distanceUnitId,
|
|
unit: sqlUser.distanceUnit,
|
|
unitName: sqlUser.distanceUnitName
|
|
},
|
|
fuelConsumptionUnit: {
|
|
id: sqlUser.fuelConsumptionUnitId,
|
|
unit: sqlUser.fuelConsumptionUnit,
|
|
unitName: sqlUser.fuelConsumptionUnitName
|
|
},
|
|
currencyUnit: {
|
|
id: sqlUser.currencyUnitId,
|
|
unit: sqlUser.currencyUnit,
|
|
unitName: sqlUser.currencyUnitName,
|
|
symbol: sqlUser.currencyUnitSymbol
|
|
}
|
|
}
|
|
};
|
|
|
|
return done(null, user);
|
|
});
|
|
};
|
|
|
|
findAll = function(done) {
|
|
|
|
db.get().query("CALL User_GetAll()", function(error, results) {
|
|
|
|
if (error) {
|
|
return done(error);
|
|
}
|
|
|
|
return done(null, results[0]);
|
|
});
|
|
};
|
|
|
|
findByUsername = function(username, done) {
|
|
|
|
db.get().query("CALL User_GetByUsername(?)", username, function(error, results) {
|
|
|
|
if (error) {
|
|
return done(error);
|
|
}
|
|
|
|
return done(null, results[0][0]);
|
|
});
|
|
};
|
|
|
|
findByEmail = function(email, done) {
|
|
|
|
db.get().query("CALL User_GetByEmail(?)", email, function(error, results) {
|
|
|
|
if (error) {
|
|
return done(error);
|
|
}
|
|
|
|
return done(null, results[0][0]);
|
|
});
|
|
};
|
|
|
|
updatePreferences = function(userId, userPreferences, done) {
|
|
|
|
var values = [
|
|
userId,
|
|
userPreferences.fuelUnit.id,
|
|
userPreferences.fuelConsumptionUnit.id,
|
|
userPreferences.distanceUnit.id,
|
|
userPreferences.currencyUnit.id
|
|
];
|
|
|
|
db.get().query("CALL User_UpdatePreferencesById(?, ?, ?, ?, ?)", values, function(error, results) {
|
|
|
|
if (error) {
|
|
return done(error);
|
|
}
|
|
|
|
return done();
|
|
});
|
|
};
|
|
|
|
create = function(user, done) {
|
|
|
|
var guid = db.generateGUID(),
|
|
values = [
|
|
guid,
|
|
user.email,
|
|
user.username,
|
|
user.password
|
|
];
|
|
|
|
db.get().query("CALL User_Insert(?, ?, ?, ?)", values, function(error, results) {
|
|
|
|
if (error) {
|
|
return done(error);
|
|
}
|
|
|
|
return done(null, guid);
|
|
});
|
|
};
|
|
|
|
remove = function(user, done) {
|
|
|
|
db.get().query("CALL User_DeleteById(?)", user, function(error, results) {
|
|
|
|
if (error || results[0][0].status === 1) {
|
|
return done(error);
|
|
}
|
|
|
|
return done();
|
|
});
|
|
};
|
|
|
|
clearData = function(user, done) {
|
|
|
|
db.get().query("CALL User_ClearById(?)", user, function(error, results) {
|
|
|
|
if (error || results[0][0].status === 1) {
|
|
return done(error);
|
|
}
|
|
|
|
return done();
|
|
});
|
|
};
|
|
|
|
promote = function(user, done) {
|
|
|
|
db.get().query("CALL User_PromoteById(?)", user, function(error, results) {
|
|
|
|
if (error) {
|
|
return done(error);
|
|
}
|
|
|
|
return done();
|
|
});
|
|
};
|
|
|
|
demote = function(user, done) {
|
|
|
|
db.get().query("CALL User_DemoteById(?)", user, function(error, results) {
|
|
|
|
if (error) {
|
|
return done(error);
|
|
}
|
|
|
|
return done();
|
|
});
|
|
};
|
|
|
|
return {
|
|
find,
|
|
findAll,
|
|
findByUsername,
|
|
findByEmail,
|
|
create,
|
|
updatePreferences,
|
|
remove,
|
|
clearData,
|
|
promote,
|
|
demote
|
|
};
|
|
|
|
}());
|