Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
* status: 0,
* stranger: '',
* ticket: '',
* user_name: '' }
*/
// console.log(rawPayload)
throw Error('cannot get user_name from raw payload: ' + JSON.stringify(rawPayload))
}
if (isRoomId(rawPayload.userName)) {
throw Error('Room Object instead of Contact!')
}
let contactType = ContactType.Unknown
if (isContactOfficialId(rawPayload.userName) || rawPayload.verifyFlag !== 0) {
contactType = ContactType.Official
} else {
contactType = ContactType.Personal
}
let friend = false
if (rawPayload.stranger && rawPayload.stranger !== '0' && rawPayload.verifyFlag === 0) {
friend = true
}
const payload: ContactPayload = {
alias : rawPayload.remark,
avatar : rawPayload.bigHeadUrl,
city : rawPayload.city,
friend,
gender : rawPayload.sex,
id : rawPayload.userName,
name : rawPayload.nickName,
province : rawPayload.province,
* status: 0,
* stranger: '',
* ticket: '',
* user_name: '' }
*/
// console.log(rawPayload)
throw Error('cannot get user_name from raw payload: ' + JSON.stringify(rawPayload))
}
if (isRoomId(rawPayload.user_name)) {
throw Error('Room Object instead of Contact!')
}
let contactType = ContactType.Unknown
if (isContactOfficialId(rawPayload.user_name)) {
contactType = ContactType.Official
} else {
contactType = ContactType.Personal
}
const payload: ContactPayload = {
alias : rawPayload.remark,
avatar : rawPayload.big_head,
city : rawPayload.city,
gender : rawPayload.sex,
id : rawPayload.user_name,
name : rawPayload.nick_name,
province : rawPayload.provincia,
signature : (rawPayload.signature).replace('+', ' '), // Stay+Foolish
type : contactType,
}
const EXPECTED_CONTACT_PAYLOAD_PERSONAL: ContactPayload = {
id : 'mengjunjun001',
gender : ContactGender.Female,
type : ContactType.Personal,
alias : '女儿',
avatar : 'http://wx.qlogo.cn/mmhead/ver_1/xfCMmibHH74xGLoyeDFJadrZXX3eOEznPefiaCa3iczxZGMwPtDuSbRQKx3Xdm18un303mf0NFia3USY2nO2VEYILw/0',
city : 'Haidian',
name : '梦君君',
province : 'Beijing',
signature : 'Stay Foolish',
}
const EXPECTED_CONTACT_PAYLOAD_OFFICIAL: ContactPayload = {
id : 'gh_59d7c8ad720c',
gender : ContactGender.Unknown,
type : ContactType.Official,
alias : '',
avatar : 'http://wx.qlogo.cn/mmhead/ver_1/TR8EDh3MgMsu20pxjrDPBpaGySuEAGf3MUuoeUOV2LiaqvZxeMqb1U7hgiciaQZBC8LYN0boVLCKOIYg71pxdl1fQabiaxsn7CnNeGWVrK3jSIY/0',
city : 'Haidian',
name : '李卓桓',
province : 'Beijing',
signature : 'CARPE DIEM+-+if+not+us,+who?+if+not+now,+when?',
}
const resultPersonal = contactRawPayloadParser(PADCHAT_CONTACT_PAYLOAD_PERSONAL)
t.deepEqual(resultPersonal, EXPECTED_CONTACT_PAYLOAD_PERSONAL, 'should parse ContactPayload for personal account payload')
const resultOfficial = contactRawPayloadParser(PADCHAT_CONTACT_PAYLOAD_OFFICIAL)
t.deepEqual(resultOfficial, EXPECTED_CONTACT_PAYLOAD_OFFICIAL, 'should parse ContactPayload for official account payload')
t.throws(() => contactRawPayloadParser({} as any), 'should throw exception for invalid object')
t.throws(() => contactRawPayloadParser(undefined as any), 'should throw exception for undifined')