'use strict'

const fp = require('fastify-plugin')
const Redis = require('fastify-redis')

module.exports = fp(async (fastify, opts) => {
  // Full options documentation here https://github.com/luin/ioredis/blob/master/API.md#Redis

  let redisOpts = Object.assign({}, {
    options: {
      host: process.env.REDIS_HOST || '{{redis_host}}',
      port: process.env.REDIS_PORT || '{{redis_port}}',
      password: process.env.REDIS_PASSWORD || '{{redis_password}}',
      db: process.env.REDIS_DB || {{redis_db}}
    }
  }, opts.redis)

  fastify.register(Redis, redisOpts)
})