Skip to content

Commit

Permalink
feat: get what is ims integration
Browse files Browse the repository at this point in the history
  • Loading branch information
kitanoyoru committed Dec 11, 2023
1 parent ce0a200 commit fa47124
Show file tree
Hide file tree
Showing 4 changed files with 80 additions and 14 deletions.
14 changes: 0 additions & 14 deletions src/api/requests/askAi.ts

This file was deleted.

39 changes: 39 additions & 0 deletions src/api/requests/getWhatIsIMS.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
import { ScAddr, ScTemplate, ScType } from 'ts-sc-client';
import { client, isAxiosError, scUtils } from '@api';

import { doCommand } from './command';


export const getWhatIsIMS = async () => {
const { uiMenuSummary } = await scUtils.findKeynodes("ui_menu_summary");

const { knowledgebaseIMS } = await scUtils.findKeynodes("knowledge_base_IMS");

const commandResult = await doCommand(uiMenuSummary.value, knowledgebaseIMS.value)

if (isAxiosError(commandResult)) return null;

const questionNode = commandResult.data.question;
const answer = await scUtils.getAnswer(new ScAddr(questionNode));

if (!answer) return null;

const linkAlias = '_link';
const linkTemplate = new ScTemplate();
linkTemplate.triple(answer, ScType.EdgeAccessVarPosPerm, [ScType.LinkVar, linkAlias]);

const linkRes = await client.templateSearch(linkTemplate);

if (!linkRes.length) return null;

const linkAddr = linkRes[0].get(linkAlias)

const contents = await client.getLinkContents([linkAddr]);
const content = contents[0].data;

return JSON.parse(String(content));
};




1 change: 1 addition & 0 deletions src/api/requests/userHistory.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ export const appendHistoryItem = async (itemAddr: number, userAddr: number) => {
'ui_menu_view_add_action_to_user_history',
);


return await doCommand(uiMenuViewAddActionToUserHistory.value, userAddr, itemAddr);
};

Expand Down
40 changes: 40 additions & 0 deletions src/api/requests/whatIsIms.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import { ScAddr, ScTemplate, ScType } from 'ts-sc-client';
import { client, isAxiosError, scUtils } from '@api';

import { doCommand } from './command';

export const getHistory = async (userAddr: number) => {
const { uiMenuViewGetUserActionHistory } = await scUtils.findKeynodes(
'ui_menu_view_get_user_action_history',
);
const { knowledgeBaseIMS } = await scUtils.findKeynodes(
"knowledge_base_IMS",
)

const res = await doCommand(uiMenuViewGetUserActionHistory.value, knowledgeBaseIMS.value);

if (isAxiosError(res)) return null;

const actionNode = new ScAddr(res.data.question);

const answer = await scUtils.getAnswer(actionNode);

if (!answer) return null;

const linkAlias = '_link';
const template = new ScTemplate();
template.triple(answer, ScType.EdgeAccessVarPosPerm, [ScType.LinkVar, linkAlias]);

const searchRes = await client.templateSearch(template);

if (!searchRes.length) return null;
const answerAddr = searchRes[0].get(linkAlias);

const contents = await client.getLinkContents([answerAddr]);

const addrs = JSON.parse(String(contents[0].data)) as string[] | null;

if (!addrs) return [];

return addrs.map((addr) => ({ question: Number(addr) })).reverse();
};

0 comments on commit fa47124

Please sign in to comment.