profileData.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. const db = require("./data.js");
  2. let profileData = [];
  3. profileData.retrieveProfileImages = async function(lang, max){
  4. return new Promise((resolve, reject) => {
  5. db.all(
  6. "SELECT id, path, " + db.langQuery("title", lang)
  7. + ", priority FROM profile_image WHERE visible=1 ORDER BY priority "
  8. + (parseInt(max) > 0 ? " LIMIT " + parseInt(max) : ""),
  9. (err, imgs) => {
  10. if (err) reject(err);
  11. else resolve(imgs);
  12. }
  13. );
  14. });
  15. }
  16. profileData.retrieveProfileTexts = async function(lang, mod){
  17. return new Promise((resolve, reject) => {
  18. db.all(
  19. "SELECT id, " + db.langQuery("content", lang)
  20. + ", priority, home FROM profile_text WHERE visible=1 "
  21. + (parseInt(mod) > 0 ? " LIMIT " + parseInt(mod) : "")
  22. + (mod == "home" ? " AND home=1 " : "") + (mod == "profile" ? " AND profile=1 " : "")
  23. + "ORDER BY priority "
  24. ,
  25. (err, texts) => {
  26. if (err) reject(err);
  27. else resolve(texts);
  28. }
  29. );
  30. });
  31. }
  32. profileData.getProfile = function(lang = null, images = null, texts = null) {
  33. return new Promise((resolve, reject) => {
  34. db.get(
  35. "SELECT first_name, last_name, display_name FROM profile LIMIT 1",
  36. async (err, row) => {
  37. if(err) reject(err);
  38. else if (!row) resolve("[]");
  39. else{
  40. if (images != false || parseInt(images) > 0){
  41. row.images = await this.retrieveProfileImages(lang, images);
  42. }
  43. if (texts != false || parseInt(texts) > 0){
  44. row.texts = await this.retrieveProfileTexts(lang, texts);
  45. }
  46. resolve(row);
  47. }
  48. }
  49. );
  50. });
  51. }
  52. module.exports = profileData;