UNPKG

@tnwx/wxmp

Version:

TNWX 微信系开发脚手架之极速开发微信公众号

402 lines 17.3 kB
"use strict"; 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 util = require("util"); const accesstoken_1 = require("@tnwx/accesstoken"); const kits_1 = require("@tnwx/kits"); /** * @author Javen * @copyright javendev@126.com * @description 微信摇一摇 设备管理 */ class ShakeAroundDeviceApi { /** * 申请设备ID * @param quantity 申请的设备ID的数量,单次新增设备超过500个,需走人工审核流程 * @param applyReason 申请理由,不超过100个汉字或200个英文字母 * @param comment 备注,不超过15个汉字或30个英文字母 * @param poiId 设备关联的门店ID,关联门店后,在门店1KM的范围内有优先摇出信息的机会。门店相关信息具体可 查看门店相关的接口文档 * @param accessToken */ static applyId(quantity, applyReason, comment, poiId, accessToken) { return __awaiter(this, void 0, void 0, function* () { let map = new Map(); map.set('quantity', quantity); map.set('apply_reason', applyReason); if (comment) map.set('comment', comment); if (poiId) map.set('poi_id', poiId); if (!accessToken) { accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken(); } let url = util.format(this.applyIdUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify(map)); }); } /** * 查询设备ID申请审核状态 * @param applyId 批次ID,申请设备ID时所返回的批次ID * @param accessToken */ static getApplyStatus(applyId, accessToken) { return __awaiter(this, void 0, void 0, function* () { if (!accessToken) { accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken(); } let url = util.format(this.applyStatusUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({ apply_id: applyId })); }); } /** * 编辑设备的备注信息 * @param deviceIdentifier 可用设备ID或完整的UUID、Major、Minor指定设备,二者选其一。 * @param comment 设备的备注信息,不超过15个汉字或30个英文字母。 * @param accessToken */ static updateDeviceInfo(deviceIdentifier, comment, accessToken) { return __awaiter(this, void 0, void 0, function* () { if (!accessToken) { accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken(); } let url = util.format(this.updateUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({ device_identifier: deviceIdentifier, comment: comment })); }); } /** * 配置设备与门店的关联关系 * @param deviceIdentifier 指定的设备ID * @param poiId 设备关联的门店ID,关联门店后,在门店1KM的范围内有优先摇出信息的机会。当值为0时,将清除设备已关联的门店ID。门店相关信息具体可 查看门店相关的接口文档 * @param type 为1时,关联的门店和设备归属于同一公众账号; 为2时,关联的门店为其他公众账号的门店 * @param poiAppid 当Type为2时,必填。关联门店所归属的公众账号的APPID * @param accessToken */ static bindLocation(deviceIdentifier, poiId, type = 1, poiAppid, accessToken) { return __awaiter(this, void 0, void 0, function* () { let map = new Map(); map.set('device_identifier', deviceIdentifier); map.set('poi_id', poiId); if (type == 2) { map.set('type', 2); if (poiAppid) map.set('poi_appid', poiAppid); } if (!accessToken) { accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken(); } let url = util.format(this.bindLocationUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify(map)); }); } /** * 查询设备列表 * @param deviceIdentifier 指定的设备ID * @param accessToken */ static searchByDevice(deviceIdentifier, accessToken) { return __awaiter(this, void 0, void 0, function* () { if (!accessToken) { accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken(); } let url = util.format(this.searchUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({ device_identifiers: deviceIdentifier, type: 1 })); }); } /** * 需要分页查询或者指定范围内的设备时 * @param lastSeen 前一次查询列表末尾的设备ID , 第一次查询last_seen 为0 * @param count 待查询的设备数量,不能超过50个 * @param accessToken */ static searchPage(lastSeen, count, accessToken) { return __awaiter(this, void 0, void 0, function* () { if (lastSeen < 0) lastSeen = 0; if (count > 50) count = 50; if (count < 1) count = 1; if (!accessToken) { accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken(); } let url = util.format(this.searchUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({ last_seen: lastSeen, type: 2, count: count })); }); } /** * 当需要根据批次ID查询时 * @param applyId 批次ID,申请设备ID时所返回的批次ID * @param lastSeen 前一次查询列表末尾的设备ID , 第一次查询last_seen 为0 * @param count 待查询的设备数量,不能超过50个 * @param accessToken */ static searchPageByApplyId(applyId, lastSeen, count, accessToken) { return __awaiter(this, void 0, void 0, function* () { if (lastSeen < 0) lastSeen = 0; if (count > 50) count = 50; if (count < 1) count = 1; if (!accessToken) { accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken(); } let url = util.format(this.searchUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({ apply_id: applyId, last_seen: lastSeen, type: 3, count: count })); }); } /** * 配置设备与页面的关联关系 * @param deviceIdentifier 指定页面的设备ID * @param pageIds 待关联的页面列表 * @param accessToken */ static bindPage(deviceIdentifier, pageIds, accessToken) { return __awaiter(this, void 0, void 0, function* () { if (!accessToken) { accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken(); } let url = util.format(this.bindPageUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({ device_identifier: deviceIdentifier, page_ids: pageIds })); }); } /** * 查询设备与页面的关联关系,当查询指定设备所关联的页面时 * @param deviceIdentifier 指定页面的设备ID * @param accessToken */ static relationSearch(deviceIdentifier, accessToken) { return __awaiter(this, void 0, void 0, function* () { if (!accessToken) { accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken(); } let url = util.format(this.relationSearchUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({ device_identifier: deviceIdentifier, type: 1 })); }); } /** * * @param pageId 指定的页面id * @param begin 关联关系列表的起始索引值 * @param count 待查询的关联关系数量,不能超过50个 * @param accessToken */ static relationSearchByPage(pageId, begin, count, accessToken) { return __awaiter(this, void 0, void 0, function* () { if (begin < 0) begin = 0; if (count > 50) count = 50; if (count < 1) count = 1; if (!accessToken) { accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken(); } let url = util.format(this.relationSearchUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({ type: 2, page_id: pageId, begin: begin, count: count })); }); } /** * 新增分组 每个帐号下最多只有1000个分组。 * @param groupName 分组名称,不超过100汉字或200个英文字母 * @param accessToken */ static addGroup(groupName, accessToken) { return __awaiter(this, void 0, void 0, function* () { if (!accessToken) { accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken(); } let url = util.format(this.addGroupUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({ group_name: groupName })); }); } /** * 编辑分组信息 * @param groupId 分组唯一标识,全局唯一 * @param groupName 分组名称,不超过100汉字或200个英文字母 * @param accessToken */ static updateGroup(groupId, groupName, accessToken) { return __awaiter(this, void 0, void 0, function* () { if (!accessToken) { accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken(); } let url = util.format(this.updateGroupUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({ group_id: groupId, group_name: groupName })); }); } /** * 删除分组 * @param groupId 分组唯一标识,全局唯一 * @param accessToken */ static deleteGroup(groupId, accessToken) { return __awaiter(this, void 0, void 0, function* () { if (!accessToken) { accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken(); } let url = util.format(this.deleteGroupUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({ group_id: groupId })); }); } /** * 查询分组列表 * @param begin 分组列表的起始索引值 * @param count 待查询的分组数量,不能超过1000个 * @param accessToken */ static getGroupList(begin, count, accessToken) { return __awaiter(this, void 0, void 0, function* () { if (!accessToken) { accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken(); } let url = util.format(this.getGroupListUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({ begin: begin, count: count })); }); } /** * 查询分组详情 * @param groupId 分组唯一标识,全局唯一 * @param begin 分组列表的起始索引值 * @param count 待查询的分组数量,不能超过1000个 * @param accessToken */ static getGroupDetail(groupId, begin, count, accessToken) { return __awaiter(this, void 0, void 0, function* () { if (!accessToken) { accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken(); } let url = util.format(this.getGroupDetailUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({ groupId: groupId, begin: begin, count: count })); }); } /** * 添加设备到分组 * @param groupId 分组唯一标识,全局唯一 * @param deviceIdentifierList 设备id列表 每次添加设备上限为1000 * @param accessToken */ static addDeviceToGroup(groupId, deviceIdentifierList, accessToken) { return __awaiter(this, void 0, void 0, function* () { if (!accessToken) { accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken(); } let url = util.format(this.addDeviceUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({ groupId: groupId, device_identifiers: deviceIdentifierList })); }); } /** * 从分组中移除设备 * @param groupId 分组唯一标识,全局唯一 * @param deviceIdentifierList 设备id列表 每次删除设备上限为1000 * @param accessToken */ static deleteDeviceFromGroup(groupId, deviceIdentifierList, accessToken) { return __awaiter(this, void 0, void 0, function* () { if (!accessToken) { accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken(); } let url = util.format(this.deleteGroupDeviceUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({ groupId: groupId, device_identifiers: deviceIdentifierList })); }); } } exports.ShakeAroundDeviceApi = ShakeAroundDeviceApi; ShakeAroundDeviceApi.applyIdUrl = 'https://api.weixin.qq.com/shakearound/device/applyid?access_token=%s'; ShakeAroundDeviceApi.applyStatusUrl = 'https://api.weixin.qq.com/shakearound/device/applystatus?access_token=%s'; ShakeAroundDeviceApi.updateUrl = 'https://api.weixin.qq.com/shakearound/device/update?access_token=%s'; ShakeAroundDeviceApi.bindLocationUrl = 'https://api.weixin.qq.com/shakearound/device/bindlocation?access_token=%s'; ShakeAroundDeviceApi.searchUrl = 'https://api.weixin.qq.com/shakearound/device/search?access_token=%s'; ShakeAroundDeviceApi.bindPageUrl = 'https://api.weixin.qq.com/shakearound/device/bindpage?access_token=%s'; ShakeAroundDeviceApi.relationSearchUrl = 'https://api.weixin.qq.com/shakearound/relation/search?access_token=%s'; ShakeAroundDeviceApi.addGroupUrl = 'https://api.weixin.qq.com/shakearound/device/group/add?access_token=%s'; ShakeAroundDeviceApi.updateGroupUrl = 'https://api.weixin.qq.com/shakearound/device/group/update?access_token=%s'; ShakeAroundDeviceApi.deleteGroupUrl = 'https://api.weixin.qq.com/shakearound/device/group/delete?access_token=%s'; ShakeAroundDeviceApi.getGroupListUrl = 'https://api.weixin.qq.com/shakearound/device/group/getlist?access_token=%s'; ShakeAroundDeviceApi.getGroupDetailUrl = 'https://api.weixin.qq.com/shakearound/device/group/getdetail?access_token=%s'; ShakeAroundDeviceApi.addDeviceUrl = 'https://api.weixin.qq.com/shakearound/device/group/adddevice?access_token=%s'; ShakeAroundDeviceApi.deleteGroupDeviceUrl = 'https://api.weixin.qq.com/shakearound/device/group/deletedevice?access_token=%s'; class DeviceIdentifier { set setDeviceId(deviceId) { this.device_id = deviceId; } get getDeviceId() { return this.device_id; } set setUuid(uuid) { this.uuid = uuid; } get getUuit() { return this.uuid; } set setMajor(major) { this.major = major; } get getMajor() { return this.major; } set setMinor(minor) { this.minor = minor; } get getMinor() { return this.minor; } } exports.DeviceIdentifier = DeviceIdentifier; //# sourceMappingURL=ShakeAroundDeviceApi.js.map