db.ts 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import mongoose from 'mongoose';
  2. export interface IMember extends mongoose.Document {
  3. handle?: String,
  4. tgId?: Number,
  5. enableNotify?: number,
  6. disId?: Number,
  7. date?: number,
  8. lastCommand: String,
  9. lastCommandChatId?: Number,
  10. };
  11. const memberSchema = new mongoose.Schema({
  12. handle: String,
  13. tgId: Number,
  14. enableNotify: Number,
  15. disId: Number,
  16. date: Number,
  17. lastCommand: String,
  18. lastCommandChatId: Number,
  19. });
  20. export interface IFaucet extends mongoose.Document {
  21. handle?: String,
  22. tgId?: Number,
  23. disId?: Number,
  24. date?: number,
  25. dateLastOperation?: number;
  26. addresses?: Array<string>,
  27. };
  28. const faucetSchema = new mongoose.Schema({
  29. handle: String,
  30. tgId: Number,
  31. disId: Number,
  32. date: Number,
  33. dateLastOperation: Number,
  34. addresses: [String],
  35. });
  36. export const MemberModel = mongoose.model<IMember>('members', memberSchema);
  37. export const FaucetModel = mongoose.model<IFaucet>('faucet', faucetSchema);
  38. const dbString = 'mongodb://127.0.0.1:27017/JoystreamLeaderboardBotTest';
  39. export default () => {
  40. const connect = () => {
  41. mongoose
  42. .connect(
  43. dbString,
  44. { useNewUrlParser: true }
  45. )
  46. .then(() => {
  47. return console.info(`Successfully connected to ${dbString}`);
  48. })
  49. .catch(error => {
  50. console.error('Error connecting to database: ', error);
  51. return process.exit(1);
  52. });
  53. };
  54. connect();
  55. mongoose.connection.on('disconnected', connect);
  56. }