diff --git a/server-new/.adonisrc.json b/server-new/.adonisrc.json index cf9d81c..d85bc35 100644 --- a/server-new/.adonisrc.json +++ b/server-new/.adonisrc.json @@ -19,7 +19,8 @@ "providers": [ "./providers/AppProvider", "@adonisjs/core", - "@zakodium/adonis-mongodb" + "@zakodium/adonis-mongodb", + "@adonisjs/redis" ], "metaFiles": [ ".env", diff --git a/server-new/.env.example b/server-new/.env.example index a79f72b..4f8f6bb 100644 --- a/server-new/.env.example +++ b/server-new/.env.example @@ -1,7 +1,12 @@ -PORT= -HOST= -NODE_ENV= +PORT=3333 +HOST=0.0.0.0 +NODE_ENV=development APP_KEY= MONGODB_URL=mongodb://localhost:27017 MONGODB_DATABASE=leaguestats + +REDIS_CONNECTION=local +REDIS_HOST=127.0.0.1 +REDIS_PORT=6379 +REDIS_PASSWORD= diff --git a/server-new/config/redis.ts b/server-new/config/redis.ts new file mode 100644 index 0000000..d3522b1 --- /dev/null +++ b/server-new/config/redis.ts @@ -0,0 +1,48 @@ +/** + * Config source: https://git.io/JemcF + * + * Feel free to let us know via PR, if you find something broken in this config + * file. + */ + +import Env from '@ioc:Adonis/Core/Env' +import { RedisConfig } from '@ioc:Adonis/Addons/Redis' + +/* +|-------------------------------------------------------------------------- +| Redis configuration +|-------------------------------------------------------------------------- +| +| Following is the configuration used by the Redis provider to connect to +| the redis server and execute redis commands. +| +| Do make sure to pre-define the connections type inside `contracts/redis.ts` +| file for AdonisJs to recognize connections. +| +| Make sure to check `contracts/redis.ts` file for defining extra connections +*/ +const redisConfig: RedisConfig = { + connection: Env.get('REDIS_CONNECTION', 'local') as 'local', + + connections: { + /* + |-------------------------------------------------------------------------- + | The default connection + |-------------------------------------------------------------------------- + | + | The main connection you want to use to execute redis commands. The same + | connection will be used by the session provider, if you rely on the + | redis driver. + | + */ + local: { + host: Env.get('REDIS_HOST', '127.0.0.1') as string, + port: Env.get('REDIS_PORT', '6379') as string, + password: Env.get('REDIS_PASSWORD', '') as string, + db: 0, + keyPrefix: '', + }, + }, +} + +export default redisConfig diff --git a/server-new/contracts/redis.ts b/server-new/contracts/redis.ts new file mode 100644 index 0000000..c04c625 --- /dev/null +++ b/server-new/contracts/redis.ts @@ -0,0 +1,12 @@ +/** + * Contract source: https://git.io/JemcN + * + * Feel free to let us know via PR, if you find something broken in this config + * file. + */ + +declare module '@ioc:Adonis/Addons/Redis' { + interface RedisConnectionsList { + local: RedisConnectionConfig, + } +} diff --git a/server-new/package-lock.json b/server-new/package-lock.json index ec58360..e4153ad 100644 --- a/server-new/package-lock.json +++ b/server-new/package-lock.json @@ -212,6 +212,16 @@ "jest-worker": "^26.1.0" } }, + "@adonisjs/redis": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@adonisjs/redis/-/redis-4.1.2.tgz", + "integrity": "sha512-B9ceEgTAcb3kZVnImfcFaTgmgAIaiVGqEuW959Tp3OGjCo4/IxcEMKqm2fpcQS+SqbZTwosSo/0rNhohAp1YDQ==", + "requires": { + "@poppinss/utils": "^2.5.2", + "@types/ioredis": "^4.17.3", + "ioredis": "^4.17.3" + } + }, "@adonisjs/sink": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@adonisjs/sink/-/sink-3.0.3.tgz", @@ -500,6 +510,14 @@ "@types/node": "*" } }, + "@types/ioredis": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/@types/ioredis/-/ioredis-4.17.4.tgz", + "integrity": "sha512-kb5+thmQJ7HHyOAnCOeqRJlF2fyvadHghnLLLKZzCNyShStJeIQtNGGDjA30gWqj6UFSDAWBfGEMKrFDrGfvzQ==", + "requires": { + "@types/node": "*" + } + }, "@types/json-schema": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", @@ -1250,6 +1268,11 @@ } } }, + "cluster-key-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz", + "integrity": "sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw==" + }, "co-compose": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/co-compose/-/co-compose-6.0.3.tgz", @@ -1427,7 +1450,6 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", - "dev": true, "requires": { "ms": "2.1.2" } @@ -2405,6 +2427,22 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, + "ioredis": { + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-4.17.3.tgz", + "integrity": "sha512-iRvq4BOYzNFkDnSyhx7cmJNOi1x/HWYe+A4VXHBu4qpwJaGT1Mp+D2bVGJntH9K/Z/GeOM/Nprb8gB3bmitz1Q==", + "requires": { + "cluster-key-slot": "^1.1.0", + "debug": "^4.1.1", + "denque": "^1.1.0", + "lodash.defaults": "^4.2.0", + "lodash.flatten": "^4.4.0", + "redis-commands": "1.5.0", + "redis-errors": "^1.2.0", + "redis-parser": "^3.0.0", + "standard-as-callback": "^2.0.1" + } + }, "ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -2691,6 +2729,16 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" }, + "lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" + }, + "lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" + }, "lodash.toarray": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", @@ -3646,6 +3694,24 @@ "esprima": "~4.0.0" } }, + "redis-commands": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.5.0.tgz", + "integrity": "sha512-6KxamqpZ468MeQC3bkWmCB1fp56XL64D4Kf0zJSwDZbVLLm7KFkoIcHrgRvQ+sk8dnhySs7+yBg94yIkAK7aJg==" + }, + "redis-errors": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", + "integrity": "sha1-62LSrbFeTq9GEMBK/hUpOEJQq60=" + }, + "redis-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", + "integrity": "sha1-tm2CjNyv5rS4pCin3vTGvKwxyLQ=", + "requires": { + "redis-errors": "^1.0.0" + } + }, "reflect-metadata": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", @@ -4146,6 +4212,11 @@ "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", "dev": true }, + "standard-as-callback": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.0.1.tgz", + "integrity": "sha512-NQOxSeB8gOI5WjSaxjBgog2QFw55FV8TkS6Y07BiB3VJ8xNTvUYm0wl0s8ObgQ5NhdpnNfigMIKjgPESzgr4tg==" + }, "static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", diff --git a/server-new/package.json b/server-new/package.json index 1eeb677..862ec20 100644 --- a/server-new/package.json +++ b/server-new/package.json @@ -22,6 +22,7 @@ "@adonisjs/ace": "^6.9.4", "@adonisjs/core": "^5.0.0-preview-rc-1.12", "@adonisjs/fold": "^6.4.1", + "@adonisjs/redis": "^4.1.2", "@zakodium/adonis-mongodb": "^0.3.0", "proxy-addr": "^2.0.6", "reflect-metadata": "^0.1.13", diff --git a/server-new/tsconfig.json b/server-new/tsconfig.json index e7762a8..32adf9c 100644 --- a/server-new/tsconfig.json +++ b/server-new/tsconfig.json @@ -24,7 +24,8 @@ }, "types": [ "@adonisjs/core", - "@zakodium/adonis-mongodb" + "@zakodium/adonis-mongodb", + "@adonisjs/redis" ] } }