You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			43 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
		
		
			
		
	
	
			43 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
| 
											5 years ago
										 | import { Constants } from '../../../..'; | ||
|  | import { SignalService } from '../../../../../protobuf'; | ||
| 
											5 years ago
										 | import { | ||
|  |   ClosedGroupMessage, | ||
|  |   ClosedGroupMessageParams, | ||
|  | } from './ClosedGroupMessage'; | ||
|  | 
 | ||
|  | interface ClosedGroupNameChangeMessageParams extends ClosedGroupMessageParams { | ||
|  |   name: string; | ||
|  | } | ||
|  | 
 | ||
|  | export class ClosedGroupNameChangeMessage extends ClosedGroupMessage { | ||
|  |   private readonly name: string; | ||
|  | 
 | ||
|  |   constructor(params: ClosedGroupNameChangeMessageParams) { | ||
|  |     super({ | ||
|  |       timestamp: params.timestamp, | ||
|  |       identifier: params.identifier, | ||
|  |       groupId: params.groupId, | ||
|  |       expireTimer: params.expireTimer, | ||
|  |     }); | ||
|  |     this.name = params.name; | ||
|  |     if (this.name.length === 0) { | ||
|  |       throw new Error('name cannot be empty'); | ||
|  |     } | ||
|  |   } | ||
|  | 
 | ||
|  |   public dataProto(): SignalService.DataMessage { | ||
|  |     const dataMessage = super.dataProto(); | ||
|  | 
 | ||
|  |     // tslint:disable: no-non-null-assertion
 | ||
|  |     dataMessage.closedGroupControlMessage!.type = | ||
|  |       SignalService.DataMessage.ClosedGroupControlMessage.Type.NAME_CHANGE; | ||
|  |     dataMessage.closedGroupControlMessage!.name = this.name; | ||
|  | 
 | ||
|  |     return dataMessage; | ||
|  |   } | ||
|  | 
 | ||
|  |   public ttl(): number { | ||
|  |     return Constants.TTL_DEFAULT.REGULAR_MESSAGE; | ||
|  |   } | ||
|  | } |