wechaty-puppet-padplus
Version:
Puppet Padplus for Wechaty
81 lines • 3.54 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const xml_to_json_1 = require("./xml-to-json");
const wechaty_puppet_1 = require("wechaty-puppet");
const friendship_event_message_parser_1 = require("./friendship-event-message-parser");
function friendshipRawPayloadParser(rawPayload) {
return __awaiter(this, void 0, void 0, function* () {
if (friendship_event_message_parser_1.friendshipConfirmEventMessageParser(rawPayload)) {
/**
* 1. Confirm Event
*/
return friendshipRawPayloadParserConfirm(rawPayload);
}
else if (friendship_event_message_parser_1.friendshipVerifyEventMessageParser(rawPayload)) {
/**
* 2. Verify Event
*/
return friendshipRawPayloadParserVerify(rawPayload);
}
else if (yield friendship_event_message_parser_1.friendshipReceiveEventMessageParser(rawPayload)) {
/**
* 3. Receive Event
*/
return friendshipRawPayloadParserReceive(rawPayload);
}
else {
throw new Error('event type is neither confirm nor verify, and not receive');
}
});
}
exports.friendshipRawPayloadParser = friendshipRawPayloadParser;
function friendshipRawPayloadParserConfirm(rawPayload) {
return __awaiter(this, void 0, void 0, function* () {
const payload = {
contactId: rawPayload.fromUserName,
id: rawPayload.msgId,
timestamp: rawPayload.createTime,
type: wechaty_puppet_1.FriendshipType.Confirm,
};
return payload;
});
}
function friendshipRawPayloadParserVerify(rawPayload) {
const payload = {
contactId: rawPayload.fromUserName,
id: rawPayload.msgId,
timestamp: rawPayload.createTime,
type: wechaty_puppet_1.FriendshipType.Verify,
};
return payload;
}
function friendshipRawPayloadParserReceive(rawPayload) {
return __awaiter(this, void 0, void 0, function* () {
const tryXmlText = rawPayload.content;
const jsonPayload = yield xml_to_json_1.xmlToJson(tryXmlText); // , { object: true })
if (!jsonPayload.msg) {
throw new Error('no msg found');
}
const padplusFriendshipPayload = jsonPayload.msg.$;
const friendshipPayload = {
contactId: padplusFriendshipPayload.fromusername,
hello: padplusFriendshipPayload.content,
id: rawPayload.msgId,
stranger: padplusFriendshipPayload.encryptusername,
ticket: padplusFriendshipPayload.ticket,
timestamp: rawPayload.createTime,
type: wechaty_puppet_1.FriendshipType.Receive,
};
return friendshipPayload;
});
}
//# sourceMappingURL=friendship-raw-payload-parser.js.map