RSS Git Download  Clone
Raw Blame History 1kB 57 lines
const consolePrefix = 'socket.io get key full'

const sharedIoRedis = require('../shared')

module.exports = async(options) => {
    const { socket, payload } = options;

    try {
        let redis = socket.p3xrs.ioredis

        const key = payload.key;
        const type = payload.type;

        console.info(consolePrefix, type, key)

        let value
        let length
        switch(type) {
            case 'string':
                value = await redis.get(key)
                break;

            case 'list':
                length = await redis.llen(key)
                value = await redis.lrange(key, 0, length)
                break;

            case 'hash':
                value = await redis.hgetall(key)
                break;

            case 'set':
                length = await redis.llen(key)
                value = await redis.lrange(key, 0, length)
                break;

            case 'zset':
                length = await redis.llen(key)
                value = await redis.lrange(key, 0, length)
                break;
        }

        socket.emit(options.responseEvent, {
            status: 'ok',
            value: value,
            ttl: await redis.ttl(key),
        })
    } catch(e) {
        console.error(e)
        socket.emit(options.responseEvent, {
            status: 'error',
            error: e,
        })
    }


}