Use coral result object directly

This commit is contained in:
Samuel Elliott
2022-09-07 17:28:27 +01:00
parent 9112a5a02b
commit 5b93c63c23
19 changed files with 70 additions and 78 deletions

View File

@@ -43,17 +43,17 @@ export async function handler(argv: ArgumentsCamelCase<Arguments>) {
const friends = await nso.getFriendList();
const activeevent = await nso.getActiveEvent();
if ('id' in activeevent.result) {
if ('id' in activeevent) {
if (argv.jsonPrettyPrint) {
console.log(JSON.stringify(activeevent.result, null, 4));
console.log(JSON.stringify(activeevent, null, 4));
return;
}
if (argv.json) {
console.log(JSON.stringify(activeevent.result));
console.log(JSON.stringify(activeevent));
return;
}
console.log('Active event', activeevent.result);
console.log('Active event', activeevent);
} else {
if (argv.json || argv.jsonPrettyPrint) {
console.log('null');

View File

@@ -39,9 +39,9 @@ export async function handler(argv: ArgumentsCamelCase<Arguments>) {
// Friend code
const user = await nso.getUserByFriendCode(argv.id);
nsa_id = user.result.nsaId;
nsa_id = user.nsaId;
console.log('User', user.result);
console.log('User', user);
} else if (/^[0-9a-f]{16}$/.test(argv.id)) {
// NSA ID
nsa_id = argv.id;

View File

@@ -44,11 +44,11 @@ export async function handler(argv: ArgumentsCamelCase<Arguments>) {
const activeevent = await nso.getActiveEvent();
if (argv.jsonPrettyPrint) {
console.log(JSON.stringify(announcements.result, null, 4));
console.log(JSON.stringify(announcements, null, 4));
return;
}
if (argv.json) {
console.log(JSON.stringify(announcements.result));
console.log(JSON.stringify(announcements));
return;
}
@@ -62,7 +62,7 @@ export async function handler(argv: ArgumentsCamelCase<Arguments>) {
],
});
for (const announcement of announcements.result) {
for (const announcement of announcements) {
table.push([
announcement.announcementId,
announcement.title.substr(0, 60),

View File

@@ -45,14 +45,14 @@ export async function handler(argv: ArgumentsCamelCase<Arguments>) {
const friendcodeurl = await nso.getFriendCodeUrl();
if (argv.jsonPrettyPrint) {
console.log(JSON.stringify(friendcodeurl.result, null, 4));
console.log(JSON.stringify(friendcodeurl, null, 4));
return;
}
if (argv.json) {
console.log(JSON.stringify(friendcodeurl.result));
console.log(JSON.stringify(friendcodeurl));
return;
}
console.warn('Friend code', friendcodeurl.result);
console.log(friendcodeurl.result.url);
console.warn('Friend code', friendcodeurl);
console.log(friendcodeurl.url);
}

View File

@@ -49,17 +49,17 @@ export async function handler(argv: ArgumentsCamelCase<Arguments>) {
const friends = await nso.getFriendList();
if (argv.jsonPrettyPrint) {
console.log(JSON.stringify(friends.result.friends, null, 4));
console.log(JSON.stringify(friends.friends, null, 4));
return;
}
if (argv.json) {
console.log(JSON.stringify(friends.result.friends));
console.log(JSON.stringify(friends.friends));
return;
}
const table = new Table({
head: [
'ID',
'Coral ID',
'NSA ID',
'Name',
'Status',
@@ -68,7 +68,7 @@ export async function handler(argv: ArgumentsCamelCase<Arguments>) {
],
});
for (const friend of friends.result.friends) {
for (const friend of friends.friends) {
const online = friend.presence.state === PresenceState.ONLINE ||
friend.presence.state === PresenceState.PLAYING;

View File

@@ -279,12 +279,10 @@ function createApp(
try {
const announcements = await req.znc!.getAnnouncements();
cached_announcements = announcements.result;
cached_announcements = announcements;
res.setHeader('Content-Type', 'application/json');
res.end(JSON.stringify({
announcements: announcements.result,
}));
res.end(JSON.stringify({announcements}));
} catch (err) {
res.statusCode = 500;
res.setHeader('Content-Type', 'application/json');
@@ -313,7 +311,7 @@ function createApp(
try {
const promise = user_data_promise.get(req.zncAuth!.user.id) ?? req.znc!.getCurrentUser().then(user => {
cached_userdata.set(req.zncAuth!.user.id, [user.result, Date.now()]);
cached_userdata.set(req.zncAuth!.user.id, [user, Date.now()]);
}).finally(() => {
user_data_promise.delete(req.zncAuth!.user.id);
});
@@ -375,7 +373,7 @@ function createApp(
try {
const promise = friends_data_promise.get(req.zncAuth!.user.id) ?? req.znc!.getFriendList().then(friends => {
cached_friendsdata.set(req.zncAuth!.user.id, [friends.result.friends, Date.now()]);
cached_friendsdata.set(req.zncAuth!.user.id, [friends.friends, Date.now()]);
}).finally(() => {
friends_data_promise.delete(req.zncAuth!.user.id);
});
@@ -403,7 +401,7 @@ function createApp(
try {
const friends_promise = friends_data_promise.get(req.zncAuth!.user.id) ?? req.znc!.getFriendList().then(friends => {
cached_friendsdata.set(req.zncAuth!.user.id, [friends.result.friends, Date.now()]);
cached_friendsdata.set(req.zncAuth!.user.id, [friends.friends, Date.now()]);
}).finally(() => {
friends_data_promise.delete(req.zncAuth!.user.id);
});
@@ -415,7 +413,7 @@ function createApp(
req.znc!.getActiveEvent(),
]).then(([friends, webservices, activeevent]) => {
// Friends list was already added to cache
cached_appdata.set(req.zncAuth!.user.id, [webservices.result, activeevent.result, Date.now()]);
cached_appdata.set(req.zncAuth!.user.id, [webservices, activeevent, Date.now()]);
}).finally(() => {
app_data_promise.delete(req.zncAuth!.user.id);
});
@@ -629,12 +627,10 @@ function createApp(
app.get('/api/znc/webservice/:id/token', nsoAuth, async (req, res) => {
try {
const response = await req.znc!.getWebServiceToken(req.params.id);
const token = await req.znc!.getWebServiceToken(req.params.id);
res.setHeader('Content-Type', 'application/json');
res.end(JSON.stringify({
token: response.result,
}));
res.end(JSON.stringify({token}));
} catch (err) {
res.statusCode = 500;
res.setHeader('Content-Type', 'application/json');
@@ -659,12 +655,10 @@ function createApp(
app.get('/api/znc/event/:id', nsoAuth, async (req, res) => {
try {
const response = await req.znc!.getEvent(parseInt(req.params.id));
const event = await req.znc!.getEvent(parseInt(req.params.id));
res.setHeader('Content-Type', 'application/json');
res.end(JSON.stringify({
event: response.result,
}));
res.end(JSON.stringify({event}));
} catch (err) {
res.statusCode = 500;
res.setHeader('Content-Type', 'application/json');
@@ -681,12 +675,10 @@ function createApp(
throw new Error('Invalid user ID');
}
const response = await req.znc!.getUser(parseInt(req.params.id));
const user = await req.znc!.getUser(parseInt(req.params.id));
res.setHeader('Content-Type', 'application/json');
res.end(JSON.stringify({
user: response.result,
}));
res.end(JSON.stringify({user}));
} catch (err) {
res.statusCode = 500;
res.setHeader('Content-Type', 'application/json');
@@ -735,7 +727,7 @@ function createApp(
throw err;
}).then(user => {
const cache = cached_friendcode_data.get(req.zncAuth!.user.id) ?? new Map<string, [FriendCodeUser | null, number]>();
cache.set(req.params.friendcode, [user?.result ?? null, Date.now()]);
cache.set(req.params.friendcode, [user ?? null, Date.now()]);
cached_friendcode_data.set(req.zncAuth!.user.id, cache);
}).finally(() => {
const promises = friendcode_data_promise.get(req.zncAuth!.user.id);
@@ -787,7 +779,7 @@ function createApp(
try {
const promise = user_friendcodeurl_promise.get(req.zncAuth!.user.id) ?? req.znc!.getFriendCodeUrl().then(user => {
cached_friendcodeurl.set(req.zncAuth!.user.id, [user.result, Date.now()]);
cached_friendcodeurl.set(req.zncAuth!.user.id, [user, Date.now()]);
}).finally(() => {
user_friendcodeurl_promise.delete(req.zncAuth!.user.id);
});

View File

@@ -49,13 +49,13 @@ export async function handler(argv: ArgumentsCamelCase<Arguments>) {
const user = await nso.getUserByFriendCode(argv.id);
if (argv.jsonPrettyPrint) {
console.log(JSON.stringify(user.result, null, 4));
console.log(JSON.stringify(user, null, 4));
return;
}
if (argv.json) {
console.log(JSON.stringify(user.result));
console.log(JSON.stringify(user));
return;
}
console.log('User', user.result);
console.log('User', user);
}

View File

@@ -54,17 +54,17 @@ export async function handler(argv: ArgumentsCamelCase<Arguments>) {
if (argv.presence) {
await nso.updateCurrentUserPermissions(argv.presence as PresencePermissions,
permissions.result.permissions.presence, permissions.result.etag);
permissions.permissions.presence, permissions.etag);
} else {
if (argv.jsonPrettyPrint) {
console.log(JSON.stringify(permissions.result, null, 4));
console.log(JSON.stringify(permissions, null, 4));
return;
}
if (argv.json) {
console.log(JSON.stringify(permissions.result));
console.log(JSON.stringify(permissions));
return;
}
console.log('Presence is visible to %s', permissions.result.permissions.presence);
console.log('Presence is visible to %s', permissions.permissions.presence);
}
}

View File

@@ -44,7 +44,7 @@ export async function handler(argv: ArgumentsCamelCase<Arguments>) {
const user = await nso.getCurrentUser();
console.log('Nintendo Account', data.user);
console.log('Nintendo Switch user', user.result);
console.log('Nintendo Switch user', user);
} else {
console.log('Nintendo Account', data.user);
console.log('Nintendo Switch user', data.nsoAccount.user);

View File

@@ -47,11 +47,11 @@ export async function handler(argv: ArgumentsCamelCase<Arguments>) {
const activeevent = await nso.getActiveEvent();
if (argv.jsonPrettyPrint) {
console.log(JSON.stringify(webservices.result, null, 4));
console.log(JSON.stringify(webservices, null, 4));
return;
}
if (argv.json) {
console.log(JSON.stringify(webservices.result));
console.log(JSON.stringify(webservices));
return;
}
@@ -63,7 +63,7 @@ export async function handler(argv: ArgumentsCamelCase<Arguments>) {
],
});
for (const webservice of webservices.result) {
for (const webservice of webservices) {
table.push([
webservice.id,
webservice.name,

View File

@@ -47,7 +47,7 @@ export async function handler(argv: ArgumentsCamelCase<Arguments>) {
const webservices = await nso.getWebServices();
const activeevent = await nso.getActiveEvent();
const webservice = webservices.result.find(w => '' + w.id === argv.id);
const webservice = webservices.find(w => '' + w.id === argv.id);
if (!webservice) {
throw new Error('Invalid web service');
@@ -74,14 +74,14 @@ export async function handler(argv: ArgumentsCamelCase<Arguments>) {
if (argv.jsonPrettyPrint) {
console.log(JSON.stringify({
webservice,
token: webserviceToken.result,
token: webserviceToken,
}, null, 4));
return;
}
if (argv.json) {
console.log(JSON.stringify({
webservice,
token: webserviceToken.result,
token: webserviceToken,
}));
return;
}
@@ -89,5 +89,5 @@ export async function handler(argv: ArgumentsCamelCase<Arguments>) {
console.log('Web service', {
name: webservice.name,
url: url.toString(),
}, webserviceToken.result);
}, webserviceToken);
}

View File

@@ -152,10 +152,10 @@ async function getPresenceFromCoral(argv: ArgumentsCamelCase<Arguments>) {
const friends = await nso.getFriendList();
const webservices = await nso.getWebServices();
const activeevent = await nso.getActiveEvent();
const user = 'expires_at' in data ? (await nso.getCurrentUser()).result : data.nsoAccount.user;
const user = 'expires_at' in data ? await nso.getCurrentUser() : data.nsoAccount.user;
if (argv.friendNsaid) {
const friend = friends.result.friends.find(f => f.nsaId === argv.friendNsaid);
const friend = friends.friends.find(f => f.nsaId === argv.friendNsaid);
if (!friend) {
throw new Error('User "' + argv.friendNsaid + '" is not friends with this user');
@@ -164,7 +164,7 @@ async function getPresenceFromCoral(argv: ArgumentsCamelCase<Arguments>) {
return [friend.presence, friend] as const;
} else {
return [user.presence, user, user.links.friendCode,
'id' in activeevent.result ? activeevent.result : undefined] as const;
'id' in activeevent ? activeevent : undefined] as const;
}
}