import starCloudInstance from '../star-cloud' import { Result } from '../constant' export { Result } /** * 账户信息 * @typedef {Object} AccountInfo * @property {Number} uid 用户ID * @property {String} username 用户名 * @property {String} password 密码 */ /** * 初始化星云 * @param params * @param {String} params.clientId 客户端Id * @param {String} params.clientSecret 客户端密码 * @param {Array} params.accounts 账号列表,后续方法中需传入uid,若未传入则默认使用第一个账号 * @param {String} params.env 环境 * @param {Boolean} params.isReportLog 是否上报日志 */ export const init = params => { starCloudInstance.init({ ...params, platform: 1 }) } /** * 注册星云 * @returns Result */ export const register = async () => { return await starCloudInstance.register() } /** * 退出登录 * @param params * @param {Number} params.uid 用户ID */ export const logout = params => { starCloudInstance.logout(params) } /** * 选择锁 * @param params * @param {Number} [params.uid] 用户ID * @param {Number} params.lockId 锁ID * @returns Result */ export const selectLock = async params => { return await starCloudInstance.selectLock(params) } /** * 开门 * @param params * @param {Number} [params.uid] 用户ID * @param {String} params.type 开门方式 close: 关门 open: 开门 * @param {Boolean} [params.disconnect] 操作后是否断开连接,默认断开 * @returns Result */ export const openDoor = async params => { return await starCloudInstance.openDoor(params) } /** * 离线密码 * @typedef {Object} OfflinePassword * @property {String} keyboardPwdName - 密码名称 * @property {Number} keyboardPwdType - 密码类型 * @property {Number} lockId - 锁 Id * @property {Number} isCoerced - 是否胁迫模式 1:胁迫 2:非胁迫 * @property {Number} startDate - 开始日期时间戳(毫秒,永久默认为0) * @property {Number} endDate - 结束日期时间戳(毫秒,永久默认为0) * @property {Number} hoursStart - 开始时间(小时, 不需要时传0) * @property {Number} hoursEnd - 结束时间(小时, 不需要时传0) */ /** * 获取离线密码 * @param params * @param {Number} [params.uid] 用户ID * @param {OfflinePassword} params.password 密码信息 * @returns Result */ export const getOfflinePassword = async params => { return await starCloudInstance.getOfflinePassword(params) } /** * 自定义密码 * @typedef {Object} CustomPassword * @property {String} keyboardPwdName - 密码名称 * @property {Number} keyboardPwdType - 密码类型:2:永久 3:限期 * @property {Number} isCoerced - 是否是胁迫密码,1:是 2:否 * @property {Number} startDate - 起始时间(毫秒) * @property {Number} endDate - 结束时间(毫秒) * @property {Number} keyboardPwd - 密码 * @property {Number} addType - 添加方式,当前仅支持1 1:蓝牙 2:网关 * @property {Number} operate - 操作 0:注册 1:修改 2:删除自定义密码 3:删除离线密码 * @property {Number} pwdRight - 是否是管理员密码 0:不是 1:是 * @property {Number} [keyboardPwdId] - 密码Id(创建无需传) * @property {Number} [pwdNo] - 密码编号(创建无需传) */ /** * 自定义密码 * @param params * @param {Number} [params.uid] 用户ID * @param {CustomPassword} params.password 密码信息 * @param {Boolean} [params.disconnect] 操作后是否断开连接,默认断开 * @returns Result */ export const customPassword = async params => { return await starCloudInstance.customPassword(params) } /** * 搜索蓝牙设备 * @callback {Function} callback 回调方法 * @returns Result */ export const searchDevice = async callback => { return await starCloudInstance.searchDevice(callback) } /** * 停止搜索 * @returns Result */ export const stopSearchDevice = async () => { return await starCloudInstance.stopSearchDevice() } /** * 绑定设备 * @param params * @param {Number} [params.uid] 用户ID * @param {String} params.name 设备名称 * @returns Result */ export const bindDevice = async params => { return await starCloudInstance.bindDevice(params) } /** * 移除坏锁 * @param params * @param {Number} [params.uid] 用户ID * @param {List[Number]} params.lockIds 锁Id列表 * @returns Result */ export const removeBadLock = async params => { return await starCloudInstance.removeBadLock(params) } /** * 删除锁 * @param params * @param {Number} [params.uid] 用户ID */ export const deleteLock = async params => { return await starCloudInstance.deleteLock(params) } /** * 修改管理员密码 * @param params * @param {Number} [params.uid] 用户ID * @param {String} params.adminPwd 管理员密码 * @param {Boolean} [params.disconnect] 操作后是否断开连接,默认断开 * @returns Result */ export const updateAdminPassword = async params => { return await starCloudInstance.updateAdminPassword(params) } /** * 同步开门记录 * @param params * @param {Number} [params.uid] 用户ID * @param {Boolean} [params.disconnect] 操作后是否断开连接,默认断开 * @returns Result */ export const syncOpenDoorRecord = async params => { return await starCloudInstance.syncAllOpenRecord(params) } /** * 获取服务器时间 * @returns Result */ export const getServerTime = async () => { return await starCloudInstance.getServerTimestamp() } /** * 获取锁支持项 * @param params * @param {Number} [params.uid] 用户ID * @param {Number} params.lockId 锁ID * @returns Result */ export const getLockSupportFeatures = async params => { return await starCloudInstance.getLockSupportFeatures(params) }