ldapts
Version:
LDAP client
48 lines (36 loc) • 1.32 kB
text/typescript
import type { BerReader, BerWriter } from 'asn1';
import type { ProtocolOperationValues } from '../ProtocolOperation.js';
import { ProtocolOperation } from '../ProtocolOperation.js';
import type { MessageOptions } from './Message.js';
import { Message } from './Message.js';
export interface CompareRequestMessageOptions extends MessageOptions {
dn?: string;
attribute?: string;
value?: string;
}
export class CompareRequest extends Message {
public protocolOperation: ProtocolOperationValues;
public dn: string;
public attribute: string;
public value: string;
public constructor(options: CompareRequestMessageOptions) {
super(options);
this.protocolOperation = ProtocolOperation.LDAP_REQ_COMPARE;
this.attribute = options.attribute ?? '';
this.value = options.value ?? '';
this.dn = options.dn ?? '';
}
public override writeMessage(writer: BerWriter): void {
writer.writeString(this.dn);
writer.startSequence();
writer.writeString(this.attribute);
writer.writeString(this.value);
writer.endSequence();
}
public override parseMessage(reader: BerReader): void {
this.dn = reader.readString() ?? '';
reader.readSequence();
this.attribute = (reader.readString() ?? '').toLowerCase();
this.value = reader.readString() ?? '';
}
}