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.
		
		
		
		
		
			
		
			
	
	
		
			48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
		
		
			
		
	
	
			48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
| 
								 
											5 years ago
										 
									 | 
							
								import { fromHex } from 'bytebuffer';
							 | 
						||
| 
								 
											5 years ago
										 
									 | 
							
								import { Constants } from '../../../..';
							 | 
						||
| 
								 | 
							
								import { SignalService } from '../../../../../protobuf';
							 | 
						||
| 
								 | 
							
								import { fromHexToArray } from '../../../../utils/String';
							 | 
						||
| 
								 
											5 years ago
										 
									 | 
							
								import {
							 | 
						||
| 
								 | 
							
								  ClosedGroupMessage,
							 | 
						||
| 
								 | 
							
								  ClosedGroupMessageParams,
							 | 
						||
| 
								 | 
							
								} from './ClosedGroupMessage';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								interface ClosedGroupAddedMembersMessageParams
							 | 
						||
| 
								 | 
							
								  extends ClosedGroupMessageParams {
							 | 
						||
| 
								 | 
							
								  addedMembers: Array<string>;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export class ClosedGroupAddedMembersMessage extends ClosedGroupMessage {
							 | 
						||
| 
								 | 
							
								  private readonly addedMembers: Array<string>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  constructor(params: ClosedGroupAddedMembersMessageParams) {
							 | 
						||
| 
								 | 
							
								    super({
							 | 
						||
| 
								 | 
							
								      timestamp: params.timestamp,
							 | 
						||
| 
								 | 
							
								      identifier: params.identifier,
							 | 
						||
| 
								 | 
							
								      groupId: params.groupId,
							 | 
						||
| 
								 | 
							
								      expireTimer: params.expireTimer,
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								    this.addedMembers = params.addedMembers;
							 | 
						||
| 
								 | 
							
								    if (!this.addedMembers?.length) {
							 | 
						||
| 
								 | 
							
								      throw new Error('addedMembers cannot be empty');
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  public dataProto(): SignalService.DataMessage {
							 | 
						||
| 
								 | 
							
								    const dataMessage = super.dataProto();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // tslint:disable: no-non-null-assertion
							 | 
						||
| 
								 | 
							
								    dataMessage.closedGroupControlMessage!.type =
							 | 
						||
| 
								 | 
							
								      SignalService.DataMessage.ClosedGroupControlMessage.Type.MEMBERS_ADDED;
							 | 
						||
| 
								 | 
							
								    dataMessage.closedGroupControlMessage!.members = this.addedMembers.map(
							 | 
						||
| 
								 | 
							
								      fromHexToArray
							 | 
						||
| 
								 | 
							
								    );
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    return dataMessage;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  public ttl(): number {
							 | 
						||
| 
								 | 
							
								    return Constants.TTL_DEFAULT.REGULAR_MESSAGE;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 |