pubnub
Version:
Publish & Subscribe Real-time Messaging with PubNub
52 lines (43 loc) • 1.16 kB
text/typescript
/**
* Time REST API module.
*/
import { TransportResponse } from '../types/transport-response';
import { AbstractRequest } from '../components/request';
import RequestOperation from '../constants/operations';
// --------------------------------------------------------
// ------------------------ Types -------------------------
// --------------------------------------------------------
// region Types
/**
* Service success response.
*/
export type TimeResponse = {
/**
* High-precision time when published data has been received by the PubNub service.
*/
timetoken: string;
};
/**
* Service success response.
*/
type ServiceResponse = [string];
// endregion
/**
* Get current PubNub high-precision time request.
*
* @internal
*/
export class TimeRequest extends AbstractRequest<TimeResponse, ServiceResponse> {
constructor() {
super();
}
operation(): RequestOperation {
return RequestOperation.PNTimeOperation;
}
async parse(response: TransportResponse): Promise<TimeResponse> {
return { timetoken: this.deserializeResponse(response)[0] };
}
protected get path(): string {
return '/time/0';
}
}