@@ -11,7 +11,7 @@ import { Readable, Stream } from "stream";
1111import { GridFSBucket , ObjectID , Db , Cursor , MongoNetworkError } from "mongodb" ;
1212import * as path from "path" ;
1313import { DatabaseConnection } from "../DatabaseConnection" ;
14- import { StripeMessage , EnsureStripeCustomerMessage , NoderedUtil , QueuedMessage , RegisterQueueMessage , QueueMessage , CloseQueueMessage , ListCollectionsMessage , DropCollectionMessage , QueryMessage , AggregateMessage , InsertOneMessage , UpdateOneMessage , Base , UpdateManyMessage , InsertOrUpdateOneMessage , DeleteOneMessage , MapReduceMessage , SigninMessage , TokenUser , User , Rights , EnsureNoderedInstanceMessage , DeleteNoderedInstanceMessage , DeleteNoderedPodMessage , RestartNoderedInstanceMessage , GetNoderedInstanceMessage , GetNoderedInstanceLogMessage , SaveFileMessage , WellknownIds , GetFileMessage , UpdateFileMessage , CreateWorkflowInstanceMessage , RegisterUserMessage , NoderedUser , WatchMessage , GetDocumentVersionMessage , DeleteManyMessage } from "openflow-api" ;
14+ import { StripeMessage , EnsureStripeCustomerMessage , NoderedUtil , QueuedMessage , RegisterQueueMessage , QueueMessage , CloseQueueMessage , ListCollectionsMessage , DropCollectionMessage , QueryMessage , AggregateMessage , InsertOneMessage , UpdateOneMessage , Base , UpdateManyMessage , InsertOrUpdateOneMessage , DeleteOneMessage , MapReduceMessage , SigninMessage , TokenUser , User , Rights , EnsureNoderedInstanceMessage , DeleteNoderedInstanceMessage , DeleteNoderedPodMessage , RestartNoderedInstanceMessage , GetNoderedInstanceMessage , GetNoderedInstanceLogMessage , SaveFileMessage , WellknownIds , GetFileMessage , UpdateFileMessage , CreateWorkflowInstanceMessage , RegisterUserMessage , NoderedUser , WatchMessage , GetDocumentVersionMessage , DeleteManyMessage , InsertManyMessage } from "openflow-api" ;
1515import { Billing , stripe_customer , stripe_base , stripe_list , StripeAddPlanMessage , StripeCancelPlanMessage , stripe_subscription , stripe_subscription_item , stripe_plan , stripe_coupon } from "openflow-api" ;
1616import { V1ResourceRequirements , V1Deployment } from "@kubernetes/client-node" ;
1717import { amqpwrapper } from "../amqpwrapper" ;
@@ -113,6 +113,9 @@ export class Message {
113113 case "insertone" :
114114 this . InsertOne ( cli ) ;
115115 break ;
116+ case "insertmany" :
117+ this . InsertMany ( cli ) ;
118+ break ;
116119 case "updateone" :
117120 this . UpdateOne ( cli ) ;
118121 break ;
@@ -373,15 +376,16 @@ export class Message {
373376 // filter out collections that are empty, or we don't have access too
374377 for ( let i = 0 ; i < msg . result . length ; i ++ ) {
375378 const collectioname = msg . result [ i ] . name ;
376- if ( msg . result [ i ] . name != "entities" && ! cli . user . HasRoleName ( "admins" ) ) {
377- // cli._logger.debug("Check if user has objects in " + collectioname);
378- const q = await Config . db . query ( { } , null , 1 , 0 , null , collectioname , msg . jwt ) ;
379- if ( q . length > 0 ) {
380- result . push ( msg . result [ i ] ) ;
381- }
382- } else {
383- result . push ( msg . result [ i ] ) ;
384- }
379+ // if (msg.result[i].name != "entities" && !cli.user.HasRoleName("admins")) {
380+ // // cli._logger.debug("Check if user has objects in " + collectioname);
381+ // const q = await Config.db.query({}, { _id: 1 }, 1, 0, null, collectioname, msg.jwt);
382+ // if (q.length > 0) {
383+ // result.push(msg.result[i]);
384+ // }
385+ // } else {
386+ // result.push(msg.result[i]);
387+ // }
388+ result . push ( msg . result [ i ] ) ;
385389 }
386390 if ( result . filter ( x => x . name == "entities" ) . length == 0 ) {
387391 result . push ( { name : "entities" , type : "collection" } ) ;
@@ -550,9 +554,9 @@ export class Message {
550554 if ( NoderedUtil . IsNullEmpty ( msg . jwt ) ) { msg . jwt = cli . jwt ; }
551555 if ( NoderedUtil . IsNullEmpty ( msg . w as any ) ) { msg . w = 0 ; }
552556 if ( NoderedUtil . IsNullEmpty ( msg . j as any ) ) { msg . j = false ; }
553- if ( NoderedUtil . IsNullEmpty ( msg . jwt ) && msg . collectionname === "jslog" ) {
554- msg . jwt = Crypt . rootToken ( ) ;
555- }
557+ // if (NoderedUtil.IsNullEmpty(msg.jwt) && msg.collectionname === "jslog") {
558+ // msg.jwt = Crypt.rootToken();
559+ // }
556560 if ( NoderedUtil . IsNullEmpty ( msg . jwt ) ) {
557561 throw new Error ( "jwt is null and client is not authenticated" ) ;
558562 }
@@ -570,6 +574,39 @@ export class Message {
570574 }
571575 this . Send ( cli ) ;
572576 }
577+ private async InsertMany ( cli : WebSocketServerClient ) : Promise < void > {
578+ this . Reply ( ) ;
579+ let msg : InsertManyMessage
580+ try {
581+ msg = InsertManyMessage . assign ( this . data ) ;
582+ if ( NoderedUtil . IsNullEmpty ( msg . jwt ) ) { msg . jwt = cli . jwt ; }
583+ if ( NoderedUtil . IsNullEmpty ( msg . w as any ) ) { msg . w = 0 ; }
584+ if ( NoderedUtil . IsNullEmpty ( msg . j as any ) ) { msg . j = false ; }
585+ // if (NoderedUtil.IsNullEmpty(msg.jwt) && msg.collectionname === "jslog") {
586+ // msg.jwt = Crypt.rootToken();
587+ // }
588+ if ( NoderedUtil . IsNullEmpty ( msg . jwt ) ) {
589+ throw new Error ( "jwt is null and client is not authenticated" ) ;
590+ }
591+ const Promises : Promise < any > [ ] = [ ] ;
592+ for ( let i : number = 0 ; i < msg . items . length ; i ++ ) {
593+ Promises . push ( Config . db . InsertOne ( msg . items [ i ] , msg . collectionname , msg . w , msg . j , msg . jwt ) ) ;
594+ }
595+ msg . results = await Promise . all ( Promises . map ( p => p . catch ( e => e ) ) ) ;
596+ if ( msg . skipresults ) msg . results = [ ] ;
597+ } catch ( error ) {
598+ if ( NoderedUtil . IsNullUndefinded ( msg ) ) { ( msg as any ) = { } ; }
599+ if ( msg !== null && msg !== undefined ) msg . error = error . message ? error . message : error ;
600+ cli . _logger . error ( error . message ? error . message : error ) ;
601+ }
602+ try {
603+ this . data = JSON . stringify ( msg ) ;
604+ } catch ( error ) {
605+ this . data = "" ;
606+ cli . _logger . error ( error . message ? error . message : error ) ;
607+ }
608+ this . Send ( cli ) ;
609+ }
573610 private async UpdateOne ( cli : WebSocketServerClient ) : Promise < void > {
574611 this . Reply ( ) ;
575612 let msg : UpdateOneMessage
0 commit comments