update version to 2025.0.2, enhance build scripts, add type exports, and improve reporting interfaces
This commit is contained in:
@@ -17,3 +17,11 @@ export interface ChannelsResponse extends IResponse<'channels', Channel[]> {
|
||||
export interface MembersResponse extends IResponse<'members', Channel[]> {
|
||||
members: Channel[];
|
||||
}
|
||||
|
||||
export interface PublishingReportResponse extends IResponse<'publishingReport', string> {
|
||||
publishingReport: string;
|
||||
}
|
||||
|
||||
export interface ViewingReportResponse extends IResponse<'viewingReport', string> {
|
||||
viewingReport: string;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import assertUnreachable from '../lang/assertUnreachable';
|
||||
import {HttpMethod} from '../net/http/HttpMethod';
|
||||
import type IResponse from './IResponse';
|
||||
import type { PCastHttpRequests } from './PCastRequests';
|
||||
import type {PCastHttpRequests} from './PCastRequests';
|
||||
import type {PublishingReportResponse, ViewingReportResponse} from './IResponse';
|
||||
import assertUnreachable from '../lang/assertUnreachable';
|
||||
|
||||
export enum ReportKind {
|
||||
Publishing = 0,
|
||||
@@ -42,7 +42,7 @@ export type PublishingReportOptions = {
|
||||
channelIds?: string[];
|
||||
channelAliases?: string[];
|
||||
roomIds?: string[];
|
||||
roomAliases?:string[];
|
||||
roomAliases?: string[];
|
||||
tags?: string[];
|
||||
start: string;
|
||||
end: string;
|
||||
@@ -57,7 +57,7 @@ export enum ViewingReportKind {
|
||||
export type ViewingReportKindType = 'RealTime' | 'HLS' | 'DASH';
|
||||
|
||||
export type ViewingReportOptions = {
|
||||
kind: ViewingReportKind,
|
||||
kind: ViewingReportKind;
|
||||
applicationIds?: string[];
|
||||
streamIds?: string[];
|
||||
sessionIds?: string[];
|
||||
@@ -66,15 +66,12 @@ export type ViewingReportOptions = {
|
||||
channelIds?: string[];
|
||||
channelAliases?: string[];
|
||||
roomIds?: string[];
|
||||
roomAliases?:string[];
|
||||
roomAliases?: string[];
|
||||
tags?: string[];
|
||||
start: string;
|
||||
end: string;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
export class Reporting {
|
||||
private readonly _httpRequests: PCastHttpRequests;
|
||||
|
||||
@@ -97,36 +94,44 @@ export class Reporting {
|
||||
}
|
||||
|
||||
public async requestPublishingReport(options: PublishingReportOptions): Promise<string> {
|
||||
|
||||
if (!(options.start || options.end)) {
|
||||
throw new Error('[Reporting] [requestPublishingReport] requires a start and end Date');
|
||||
}
|
||||
const publishingReportOptions = {
|
||||
...options
|
||||
...options
|
||||
};
|
||||
|
||||
const requestPublishingOptions = {
|
||||
body: JSON.stringify({publishingReport: publishingReportOptions})
|
||||
|
||||
body: JSON.stringify({publishingReport: publishingReportOptions})
|
||||
};
|
||||
const response = await this._httpRequests.request<IResponse<'publishingReport', string>>(HttpMethod.PUT, '/pcast/reporting/publishing', requestPublishingOptions);
|
||||
|
||||
return response;
|
||||
const response = await this._httpRequests.request<PublishingReportResponse>(
|
||||
HttpMethod.PUT,
|
||||
'/pcast/reporting/publishing',
|
||||
requestPublishingOptions
|
||||
);
|
||||
|
||||
if (!response.publishingReport) {
|
||||
throw new Error('[Reporting] [requestPublishingReport] Invalid response format - missing publishingReport data');
|
||||
}
|
||||
|
||||
private async requestViewingReport(options: ViewingReportOptions): Promise<string> {
|
||||
const viewingReportOptions = {
|
||||
...options
|
||||
};
|
||||
|
||||
const requestViewingOptions = {
|
||||
body: JSON.stringify({viewingReport: viewingReportOptions})
|
||||
};
|
||||
return response.publishingReport;
|
||||
}
|
||||
|
||||
const response = await this._httpRequests.request<IResponse<'viewingReport', string>>(HttpMethod.PUT, '/pcast/reporting/viewing', requestViewingOptions);
|
||||
private async requestViewingReport(options: ViewingReportOptions): Promise<string> {
|
||||
const viewingReportOptions = {
|
||||
...options
|
||||
};
|
||||
|
||||
return response;
|
||||
const requestViewingOptions = {
|
||||
body: JSON.stringify({viewingReport: viewingReportOptions})
|
||||
};
|
||||
|
||||
const response = await this._httpRequests.request<ViewingReportResponse>(HttpMethod.PUT, '/pcast/reporting/viewing', requestViewingOptions);
|
||||
|
||||
if (!response.viewingReport) {
|
||||
throw new Error('[Reporting] [requestViewingReport] Invalid response format - missing viewingReport data');
|
||||
}
|
||||
|
||||
return response.viewingReport;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,33 +1,29 @@
|
||||
|
||||
import { HttpMethod } from "../net/http/HttpMethod";
|
||||
import type IResponse from "./IResponse";
|
||||
import type { PCastHttpRequests } from "./PCastRequests";
|
||||
import {HttpMethod} from '../net/http/HttpMethod';
|
||||
import type IResponse from './IResponse';
|
||||
import type {PCastHttpRequests} from './PCastRequests';
|
||||
|
||||
export class Streams {
|
||||
private readonly _httpRequests: PCastHttpRequests;
|
||||
private readonly _httpRequests: PCastHttpRequests;
|
||||
|
||||
constructor(httpRequests: PCastHttpRequests) {
|
||||
this._httpRequests = httpRequests;
|
||||
constructor(httpRequests: PCastHttpRequests) {
|
||||
this._httpRequests = httpRequests;
|
||||
}
|
||||
|
||||
public async publishUri(mediaUri: string, token: string) {
|
||||
const mediaType = mediaUri.split('.')?.at(-1);
|
||||
|
||||
if (!mediaType) {
|
||||
throw new Error('Invalid media URI no media type found');
|
||||
}
|
||||
|
||||
const response = await this._httpRequests.request<IResponse<'publishUri', string>>(HttpMethod.PUT, `/stream/publish/uri/${mediaType}`, {
|
||||
body: JSON.stringify({
|
||||
token,
|
||||
uri: mediaUri,
|
||||
options: []
|
||||
})
|
||||
});
|
||||
|
||||
public async publishUri(mediaUri: string, token: string) {
|
||||
const mediaType = mediaUri.split('.')?.at(-1);
|
||||
|
||||
if (!mediaType) {
|
||||
throw new Error('Invalid media URI no media type found');
|
||||
}
|
||||
|
||||
|
||||
const response = await this._httpRequests.request<IResponse<'publishUri', string>>(HttpMethod.PUT, `/stream/publish/uri/${mediaType}`, {
|
||||
body: JSON.stringify({
|
||||
token,
|
||||
uri: mediaUri,
|
||||
options: []
|
||||
})
|
||||
});
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
}
|
||||
return response;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user