@@ -13,7 +13,7 @@ import { Readable, Stream } from "stream";
1313import { GridFSBucket , ObjectID , Cursor } from "mongodb" ;
1414import * as path from "path" ;
1515import { DatabaseConnection } from "../DatabaseConnection" ;
16- 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 , GetKubeNodeLabels , RegisterExchangeMessage , EnsureCustomerMessage , Customer , stripe_tax_id , Role } from "@openiap/openflow-api" ;
16+ 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 , GetKubeNodeLabels , RegisterExchangeMessage , EnsureCustomerMessage , Customer , stripe_tax_id , Role , SelectCustomerMessage } from "@openiap/openflow-api" ;
1717import { Billing , stripe_customer , stripe_base , stripe_list , StripeAddPlanMessage , StripeCancelPlanMessage , stripe_subscription , stripe_subscription_item , stripe_plan , stripe_coupon } from "@openiap/openflow-api" ;
1818import { V1ResourceRequirements , V1Deployment } from "@kubernetes/client-node" ;
1919import { amqpwrapper } from "../amqpwrapper" ;
@@ -500,6 +500,9 @@ export class Message {
500500 case "ensurecustomer" :
501501 await this . EnsureCustomer ( cli , span ) ;
502502 break ;
503+ case "selectcustomer" :
504+ await this . SelectCustomer ( cli , span ) ;
505+ break ;
503506 case "housekeeping" :
504507 this . EnsureJWT ( cli ) ;
505508 if ( Config . enable_openflow_amqp ) {
@@ -3691,8 +3694,6 @@ export class Message {
36913694 }
36923695 this . Send ( cli ) ;
36933696 }
3694-
3695-
36963697 // https://dominik.sumer.dev/blog/stripe-checkout-eu-vat
36973698 async EnsureCustomer ( cli : WebSocketServerClient , parent : Span ) {
36983699 this . Reply ( ) ;
@@ -4025,6 +4026,44 @@ export class Message {
40254026 }
40264027 Logger . otel . endSpan ( span ) ;
40274028 }
4029+ async SelectCustomer ( cli : WebSocketServerClient , parent : Span ) {
4030+ this . Reply ( ) ;
4031+ let msg : SelectCustomerMessage ;
4032+ try {
4033+ msg = SelectCustomerMessage . assign ( this . data ) ;
4034+ if ( ! NoderedUtil . IsNullEmpty ( msg . customerid ) ) {
4035+ var customer = await Config . db . getbyid < Customer > ( msg . customerid , "users" , cli . jwt , parent )
4036+ if ( customer == null ) msg . customerid = null ;
4037+ }
4038+ const UpdateDoc : any = { "$set" : { } } ;
4039+ UpdateDoc . $set [ "selectedcustomerid" ] = msg . customerid ;
4040+ await Config . db . _UpdateOne ( { "_id" : cli . user . _id } , UpdateDoc , "users" , 1 , false , Crypt . rootToken ( ) , parent ) ;
4041+ cli . user . selectedcustomerid = msg . customerid ;
4042+ const tuser : TokenUser = TokenUser . From ( cli . user ) ;
4043+ cli . jwt = Crypt . createToken ( tuser , Config . shorttoken_expires_in ) ;
4044+
4045+ const l : SigninMessage = new SigninMessage ( ) ;
4046+ l . jwt = cli . jwt ;
4047+ l . user = tuser ;
4048+ const m : Message = new Message ( ) ; m . command = "refreshtoken" ;
4049+ m . data = JSON . stringify ( l ) ;
4050+ cli . Send ( m ) ;
4051+ } catch ( error ) {
4052+ await handleError ( cli , error ) ;
4053+ if ( NoderedUtil . IsNullUndefinded ( msg ) ) { ( msg as any ) = { } ; }
4054+ if ( msg !== null && msg !== undefined ) {
4055+ msg . error = ( error . message ? error . message : error ) ;
4056+ }
4057+ }
4058+ try {
4059+ this . data = JSON . stringify ( msg ) ;
4060+ } catch ( error ) {
4061+ this . data = "" ;
4062+ await handleError ( cli , error ) ;
4063+ }
4064+ this . Send ( cli ) ;
4065+ }
4066+
40284067}
40294068
40304069export class JSONfn {
0 commit comments