Add API function for getting a user's configuration.

This commit is contained in:
knotteye
2020-07-30 00:45:08 -05:00
parent c745572a7e
commit db8d9dfe72
3 changed files with 71 additions and 22 deletions

View File

@@ -69,4 +69,21 @@ async function deleteVODs(vodlist: Array<string>, username: string): Promise<obj
return {"success":""};
}
export { register, update, changepwd, changesk, login, updateChat, deleteVODs };
async function getConfig(username: string, all?: boolean): Promise<object>{
let t = {username: username};
if(all) {
let users = await db.query('SELECT stream_key,record_flag FROM users WHERE username='+db.raw.escape(username));
if(users[0]) Object.assign(t, users[0]);
let usermeta = await db.query('SELECT title,about FROM user_meta WHERE username='+db.raw.escape(username));
if(usermeta[0]) Object.assign(t, users[0]);
let ci = await db.query('SELECT irc,xmpp,twitch,discord FROM chat_integration WHERE username='+db.raw.escape(username));
if(ci[0]) Object.assign(t, ci[0]);
}
else {
let um = await db.query('SELECT title,about FROM user_meta WHERE username='+db.raw.escape(username));
if(um[0]) Object.assign(t, um[0]);
}
return t;
}
export { register, update, changepwd, changesk, login, updateChat, deleteVODs, getConfig };

View File

@@ -168,15 +168,23 @@ async function initAPI() {
);
});
app.get('/api/users/live', (req, res) => {
if(req.params.sort) {
}
if(req.params.num){
}
db.query('select username,title from user_meta where live=1 limit 10;').then((result) => {
res.send(result);
});
});
app.get('/api/users/live/:num', (req, res) => {
if(req.params.num > 50) req.params.num = 50;
db.query('select username,title from user_meta where live=1 limit '+req.params.num+';').then((result) => {
res.send(result);
});
app.get('/api/users/all', (req, res) => {
if(req.params.sort) {
}
if(req.params.num) {
}
});
app.post('/api/register', (req, res) => {
api.register(req.body.username, req.body.password, req.body.confirm).then( (result) => {
@@ -312,7 +320,7 @@ async function initAPI() {
});
}
});
app.get('/api/:user/vods/list', (req, res) => {
app.get('/api/:user/vods', (req, res) => {
readdir('./site/live/'+req.params.user, {withFileTypes: true} , (err, files) => {
if(err) {
res.send([]);
@@ -322,6 +330,23 @@ async function initAPI() {
res.send(list);
});
});
app.get('/api/:user/config', (req, res) => {
if(req.cookies.Authorization) validToken(req.cookies.Authorization).then(r => {
if(r && r['username'] === req.params.user) {
api.getConfig(req.params.user, true).then(re => {
res.send(JSON.stringify(re));
});
return;
}
api.getConfig(req.params.user).then(re => {
res.send(JSON.stringify(re));
});
return;
});
api.getConfig(req.params.user).then(r => {
res.send(JSON.stringify(r));
});
});
}
async function initSite(openReg) {