This commit is contained in:
ろむねこ 2024-07-17 14:06:37 +09:00
parent 264862647a
commit b3f2789e48
Signed by: Fujimatsu
GPG Key ID: FA1F39A1BA37D168
8 changed files with 51 additions and 9 deletions

View File

@ -36,9 +36,9 @@ class ApiClient {
const response = await this.client.get(url, config);
return response.data;
}
async post(url, data, includeToken = true) {
async post(url, data, params, includeToken = true) {
const headers = this.getHeaders(includeToken);
const response = await this.client.post(url, data, { headers });
const response = await this.client.post(url, data, { headers, params });
return response.data;
}
}

View File

@ -1 +1 @@
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":";;;;;AAAA,kDAAiE;AAGjE,MAAM,QAAQ,GAAG,+BAA+B,CAAC;AACjD,MAAM,OAAO,GAAG,IAAI,CAAC;AAErB,MAAM,SAAS;IAIX;QAFQ,UAAK,GAAkB,IAAI,CAAC;QAGhC,IAAI,CAAC,MAAM,GAAG,eAAK,CAAC,MAAM,CAAC;YACvB,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,OAAO;SACnB,CAAC,CAAC;IACP,CAAC;IAEM,QAAQ,CAAC,KAAa;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAEO,UAAU,CAAC,YAAqB;QACpC,MAAM,OAAO,GAA2B;YACpC,cAAc,EAAE,kBAAkB;SACrC,CAAC;QACF,IAAI,YAAY,EAAE,CAAC;YACf,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,KAAK,EAAE,CAAC;QACjD,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,GAAG,CAAI,GAAW,EAAE,MAAY,EAAE,YAAY,GAAG,IAAI;QACvD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAuB;YAC/B,OAAO;YACP,MAAM;SACT,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAI,GAAG,EAAE,MAAM,CAAC,CAAC;QACvD,OAAO,QAAQ,CAAC,IAAI,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,IAAI,CAAI,GAAW,EAAE,IAAS,EAAE,YAAY,GAAG,IAAI;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAI,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QACnE,OAAO,QAAQ,CAAC,IAAI,CAAC;IACzB,CAAC;CACJ;AAED,kBAAe,IAAI,SAAS,EAAE,CAAC"}
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":";;;;;AAAA,kDAAiE;AAGjE,MAAM,QAAQ,GAAG,+BAA+B,CAAC;AACjD,MAAM,OAAO,GAAG,IAAI,CAAC;AAErB,MAAM,SAAS;IAIX;QAFQ,UAAK,GAAkB,IAAI,CAAC;QAGhC,IAAI,CAAC,MAAM,GAAG,eAAK,CAAC,MAAM,CAAC;YACvB,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,OAAO;SACnB,CAAC,CAAC;IACP,CAAC;IAEM,QAAQ,CAAC,KAAa;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAEO,UAAU,CAAC,YAAqB;QACpC,MAAM,OAAO,GAA2B;YACpC,cAAc,EAAE,kBAAkB;SACrC,CAAC;QACF,IAAI,YAAY,EAAE,CAAC;YACf,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,KAAK,EAAE,CAAC;QACjD,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,GAAG,CAAI,GAAW,EAAE,MAAY,EAAE,YAAY,GAAG,IAAI;QACvD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAuB;YAC/B,OAAO;YACP,MAAM;SACT,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAI,GAAG,EAAE,MAAM,CAAC,CAAC;QACvD,OAAO,QAAQ,CAAC,IAAI,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,IAAI,CAAI,GAAW,EAAE,IAAS,EAAE,MAAwB,EAAE,YAAY,GAAG,IAAI;QAC/E,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAI,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3E,OAAO,QAAQ,CAAC,IAAI,CAAC;IACzB,CAAC;CACJ;AAED,kBAAe,IAAI,SAAS,EAAE,CAAC"}

View File

@ -33,6 +33,7 @@ const MetaService_1 = __importDefault(require("./service/MetaService"));
const AuthService_1 = __importDefault(require("./service/AuthService"));
const TaskService_1 = __importDefault(require("./service/TaskService"));
const AttributeUtils_1 = __importDefault(require("./AttributeUtils"));
const ChildService_1 = __importDefault(require("./service/ChildService"));
const LaunchRequestHandler = {
canHandle(handlerInput) {
return Alexa.getRequestType(handlerInput.requestEnvelope) === 'LaunchRequest';
@ -100,10 +101,34 @@ const KidShiftTaskCompleteIntentHandler = {
&& Alexa.getIntentName(handlerInput.requestEnvelope) === 'KidShiftTaskCompleteIntent';
},
async handle(handlerInput) {
const taskList = await TaskService_1.default.getTasks();
const childList = await ChildService_1.default.getChildList();
const taskName = Alexa.getSlotValue(handlerInput.requestEnvelope, 'taskName');
const childName = Alexa.getSlotValue(handlerInput.requestEnvelope, 'childName');
const task = taskList.list.find((task) => task.name === taskName);
if (!task) {
return handlerInput.responseBuilder
.speak('WIP')
.speak('Task not found')
.getResponse();
}
const child = childList.list.find((child) => child.name === childName);
if (!child) {
return handlerInput.responseBuilder
.speak('Child not found')
.getResponse();
}
const attributeUtils = new AttributeUtils_1.default(handlerInput);
TaskService_1.default.setToken(await attributeUtils.getToken());
return TaskService_1.default.completeTask(task.id, child.id).then(() => {
return handlerInput.responseBuilder
.speak('Task completed')
.getResponse();
}).catch(() => {
return handlerInput.responseBuilder
.speak('Task completion failed')
.getResponse();
});
}
};
const KidShiftMetaIntentHandler = {
canHandle(handlerInput) {

File diff suppressed because one or more lines are too long

View File

@ -1,2 +1,14 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const api_1 = __importDefault(require("../api"));
const _ServiceBase_1 = __importDefault(require("./_ServiceBase"));
class ChildService extends _ServiceBase_1.default {
async getChildList() {
return api_1.default.get('/child');
}
}
exports.default = new ChildService();
//# sourceMappingURL=ChildService.js.map

View File

@ -1 +1 @@
{"version":3,"file":"ChildService.js","sourceRoot":"","sources":["../../src/service/ChildService.ts"],"names":[],"mappings":""}
{"version":3,"file":"ChildService.js","sourceRoot":"","sources":["../../src/service/ChildService.ts"],"names":[],"mappings":";;;;;AAAA,iDAAyB;AAEzB,kEAA0C;AAE1C,MAAM,YAAa,SAAQ,sBAAY;IACrC,KAAK,CAAC,YAAY;QAChB,OAAO,aAAG,CAAC,GAAG,CAAoB,QAAQ,CAAC,CAAC;IAC9C,CAAC;CACF;AAED,kBAAe,IAAI,YAAY,EAAE,CAAC"}

View File

@ -9,6 +9,11 @@ class TaskService extends _ServiceBase_1.default {
async getTasks() {
return await api_1.default.get('/task');
}
async completeTask(taskId, childId) {
const params = new URLSearchParams();
params.append('childId', childId);
return await api_1.default.post(`/task/${taskId}/complete`, {}, params);
}
}
exports.default = new TaskService();
//# sourceMappingURL=TaskService.js.map

View File

@ -1 +1 @@
{"version":3,"file":"TaskService.js","sourceRoot":"","sources":["../../src/service/TaskService.ts"],"names":[],"mappings":";;;;;AAAA,iDAAyB;AAEzB,kEAA0C;AAE1C,MAAM,WAAY,SAAQ,sBAAY;IAClC,KAAK,CAAC,QAAQ;QACV,OAAO,MAAM,aAAG,CAAC,GAAG,CAAmB,OAAO,CAAC,CAAC;IACpD,CAAC;CACJ;AAED,kBAAe,IAAI,WAAW,EAAE,CAAC"}
{"version":3,"file":"TaskService.js","sourceRoot":"","sources":["../../src/service/TaskService.ts"],"names":[],"mappings":";;;;;AAAA,iDAAyB;AAEzB,kEAA0C;AAE1C,MAAM,WAAY,SAAQ,sBAAY;IAClC,KAAK,CAAC,QAAQ;QACV,OAAO,MAAM,aAAG,CAAC,GAAG,CAAmB,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,OAAe;QAC9C,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAClC,OAAO,MAAM,aAAG,CAAC,IAAI,CAAO,SAAS,MAAM,WAAW,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC;CACJ;AAED,kBAAe,IAAI,WAAW,EAAE,CAAC"}