123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218 |
- import * as mongoose from 'mongoose'
- import { Observable, map, Subject, takeUntil, take, of, timer, from } from "rxjs";
- import { ErrorTrigger, MessageSynchronisationServiceSetting } from "../type/datatype";
- import { StreamingService } from "./test-streamOBS";
- import { MessageAuditorService } from "../services/message-auditor.service";
- import { LoggingService } from '../dependencies/log/interface/export';
- import { BaseMessage } from '../dependencies/msgutil/interface/export';
- import { LogSetting, MessageLog } from '../dependencies/log/type/datatype';
- import * as fs from "fs"
- const Schema = mongoose.Schema;
- const fingerPrintSchema = new Schema({
- uuid: { type: String, required: true, lowercase: true, unique: true },
- fileName: { type: String, required: true, lowercase: true },
- fileType: { type: String, required: true, lowercase: true },
- entityName: { type: String, required: true, lowercase: true },
- fileData: { type: Object, required: true },
- });
- const messageSchema = require('../dependencies/log/type/schemas/message.schema')
- function convertDataInMongo(url: string) {
-
- let data: Subject<any> = new Subject()
- let convertService = new LoggingService()
- let dbConnection = mongoose.createConnection(url)
- let dataModel = dbConnection.model('genericdata', fingerPrintSchema)
- let messages = dbConnection.model('message', messageSchema)
-
-
- dataModel.find().then((res) => {
-
- res.forEach((element) => {
- data.next(element)
- })
- })
-
-
-
-
- data.subscribe((element) => {
- let res = convertService.convertCDMStoMessageLog(element, settings.incomingSource.tags)
- console.log(`Converting fingerprint .... ${res.appData.msgId}`)
- messages.create(res)
- })
- }
- const dbConnection = mongoose.createConnection("mongodb+srv://testDB:h1nt1OyXw6QeUnzS@cluster0.29sklte.mongodb.net/secondary")
- const dataModel = dbConnection.model('genericdata', fingerPrintSchema)
- function convertMessageLogToCDMS(args: MessageLog){
- let converted = secondary_log.convertMessageLogtoCDMS(args)
- dataModel.create(converted)
- }
- const primary_sync = new MessageAuditorService()
- const primary_Log = new LoggingService()
- const primary: Subject<MessageLog> = new Subject()
- primary.subscribe((element) => {
- console.log(`Primary Received ${element.appData.msgId}`)
- })
- const secondary_log = new LoggingService()
- const secondary: Subject<MessageLog> = new Subject()
- secondary.subscribe((element: MessageLog) => {
- console.log(`Secondary Received ${element.appData.msgId}`)
- convertMessageLogToCDMS(element)
- })
- let primary_storage: LogSetting = {
- cacheMessageLimit: 0,
- storage: "MongoDB",
- setting: {
- appName: 'Default from client',
- appLocName: 'To be generated in client',
- logLocName: 'To be generated in client',
- },
- customSetting: {
- server: "192.168.100.59:27017",
- database: "primary"
- }
- }
- let secondary_storage: LogSetting = {
- cacheMessageLimit: 0,
- storage: "MongoDB",
- setting: {
- appName: 'Default from client',
- appLocName: 'To be generated in client',
- logLocName: 'To be generated in client',
- },
- customSetting: {
- srv: true,
- user: "testDB",
- password: "h1nt1OyXw6QeUnzS",
- server: "cluster0.29sklte.mongodb.net",
- database: "secondary",
- }
- }
- let settings: MessageSynchronisationServiceSetting = {
- incomingSource: {
-
- ...primary_storage,
- tags: ['Fingerprint']
- },
- target: {
- ...secondary_storage,
- tags: ['Fingerprint']
- }
- }
-
- primary_sync.init(settings)
- let errorSubject: Subject<ErrorTrigger> = new Subject()
- let sync = primary_sync.subscribe(errorSubject)
- sync.subscribe({
- next: (msgToBeSynchronized: MessageLog) => {
- console.log(`passing missing message: ${msgToBeSynchronized.appData.msgId} into target/secondary subject.`)
-
- secondary.next(msgToBeSynchronized)
- }
- })
- setTimeout(() => {
-
-
- let sampleError: ErrorTrigger = {
- status: 1,
- message: "NO. I dont want to work"
- }
- errorSubject.next(sampleError)
- }, 3000)
- const dns = require('dns');
- function checkInternetConnectivity() {
- dns.lookup('example.com', (err) => {
- if (err && err.code === 'ENOTFOUND') {
- let errorMsg: ErrorTrigger = {
- status: 0,
- message: `No internet connection`
- }
- errorSubject.next(errorMsg)
- } else {
-
-
- }
- });
- }
- const intervalTime = 1000;
- const interval = setInterval(checkInternetConnectivity, intervalTime);
- const duration = 60000;
- setTimeout(function () {
- clearInterval(interval);
- console.log('Internet connectivity monitoring stopped');
- }, duration);
- function countdown() {
- let seconds = 0;
- const countUpInterval = setInterval(() => {
- console.log(`Elapsed seconds: ${seconds}`);
- seconds++;
- }, 1000);
- }
- countdown()
- secondary_log.init(settings.target).then(() => {
- secondary_log.subscribe(secondary)
- })
|