Merge branch 'feat-api-speaker-reassignment' of github.com:Monadical-SAS/reflector into sara/feat-speaker-reassign

This commit is contained in:
Sara
2023-12-12 11:48:20 +01:00
16 changed files with 992 additions and 7 deletions

View File

@@ -9,12 +9,15 @@ models/GetTranscript.ts
models/GetTranscriptSegmentTopic.ts
models/GetTranscriptTopic.ts
models/GetTranscriptTopicWithWords.ts
models/GetTranscriptTopicWithWordsPerSpeaker.ts
models/HTTPValidationError.ts
models/PageGetTranscript.ts
models/Participant.ts
models/RtcOffer.ts
models/SpeakerAssignment.ts
models/SpeakerAssignmentStatus.ts
models/SpeakerMerge.ts
models/SpeakerWords.ts
models/TranscriptParticipant.ts
models/UpdateParticipant.ts
models/UpdateTranscript.ts

View File

@@ -19,12 +19,14 @@ import type {
CreateTranscript,
DeletionStatus,
GetTranscript,
GetTranscriptTopicWithWordsPerSpeaker,
HTTPValidationError,
PageGetTranscript,
Participant,
RtcOffer,
SpeakerAssignment,
SpeakerAssignmentStatus,
SpeakerMerge,
UpdateParticipant,
UpdateTranscript,
} from "../models";
@@ -39,6 +41,8 @@ import {
DeletionStatusToJSON,
GetTranscriptFromJSON,
GetTranscriptToJSON,
GetTranscriptTopicWithWordsPerSpeakerFromJSON,
GetTranscriptTopicWithWordsPerSpeakerToJSON,
HTTPValidationErrorFromJSON,
HTTPValidationErrorToJSON,
PageGetTranscriptFromJSON,
@@ -51,6 +55,8 @@ import {
SpeakerAssignmentToJSON,
SpeakerAssignmentStatusFromJSON,
SpeakerAssignmentStatusToJSON,
SpeakerMergeFromJSON,
SpeakerMergeToJSON,
UpdateParticipantFromJSON,
UpdateParticipantToJSON,
UpdateTranscriptFromJSON,
@@ -106,10 +112,20 @@ export interface V1TranscriptGetTopicsWithWordsRequest {
transcriptId: any;
}
export interface V1TranscriptGetTopicsWithWordsPerSpeakerRequest {
transcriptId: any;
topicId: any;
}
export interface V1TranscriptGetWebsocketEventsRequest {
transcriptId: any;
}
export interface V1TranscriptMergeSpeakerRequest {
transcriptId: any;
speakerMerge: SpeakerMerge;
}
export interface V1TranscriptRecordWebrtcRequest {
transcriptId: any;
rtcOffer: RtcOffer;
@@ -917,6 +933,82 @@ export class DefaultApi extends runtime.BaseAPI {
return await response.value();
}
/**
* Transcript Get Topics With Words Per Speaker
*/
async v1TranscriptGetTopicsWithWordsPerSpeakerRaw(
requestParameters: V1TranscriptGetTopicsWithWordsPerSpeakerRequest,
initOverrides?: RequestInit | runtime.InitOverrideFunction,
): Promise<runtime.ApiResponse<GetTranscriptTopicWithWordsPerSpeaker>> {
if (
requestParameters.transcriptId === null ||
requestParameters.transcriptId === undefined
) {
throw new runtime.RequiredError(
"transcriptId",
"Required parameter requestParameters.transcriptId was null or undefined when calling v1TranscriptGetTopicsWithWordsPerSpeaker.",
);
}
if (
requestParameters.topicId === null ||
requestParameters.topicId === undefined
) {
throw new runtime.RequiredError(
"topicId",
"Required parameter requestParameters.topicId was null or undefined when calling v1TranscriptGetTopicsWithWordsPerSpeaker.",
);
}
const queryParameters: any = {};
const headerParameters: runtime.HTTPHeaders = {};
if (this.configuration && this.configuration.accessToken) {
// oauth required
headerParameters["Authorization"] = await this.configuration.accessToken(
"OAuth2AuthorizationCodeBearer",
[],
);
}
const response = await this.request(
{
path: `/v1/transcripts/{transcript_id}/topics/{topic_id}/words-per-speaker`
.replace(
`{${"transcript_id"}}`,
encodeURIComponent(String(requestParameters.transcriptId)),
)
.replace(
`{${"topic_id"}}`,
encodeURIComponent(String(requestParameters.topicId)),
),
method: "GET",
headers: headerParameters,
query: queryParameters,
},
initOverrides,
);
return new runtime.JSONApiResponse(response, (jsonValue) =>
GetTranscriptTopicWithWordsPerSpeakerFromJSON(jsonValue),
);
}
/**
* Transcript Get Topics With Words Per Speaker
*/
async v1TranscriptGetTopicsWithWordsPerSpeaker(
requestParameters: V1TranscriptGetTopicsWithWordsPerSpeakerRequest,
initOverrides?: RequestInit | runtime.InitOverrideFunction,
): Promise<GetTranscriptTopicWithWordsPerSpeaker> {
const response = await this.v1TranscriptGetTopicsWithWordsPerSpeakerRaw(
requestParameters,
initOverrides,
);
return await response.value();
}
/**
* Transcript Get Websocket Events
*/
@@ -972,6 +1064,80 @@ export class DefaultApi extends runtime.BaseAPI {
return await response.value();
}
/**
* Transcript Merge Speaker
*/
async v1TranscriptMergeSpeakerRaw(
requestParameters: V1TranscriptMergeSpeakerRequest,
initOverrides?: RequestInit | runtime.InitOverrideFunction,
): Promise<runtime.ApiResponse<SpeakerAssignmentStatus>> {
if (
requestParameters.transcriptId === null ||
requestParameters.transcriptId === undefined
) {
throw new runtime.RequiredError(
"transcriptId",
"Required parameter requestParameters.transcriptId was null or undefined when calling v1TranscriptMergeSpeaker.",
);
}
if (
requestParameters.speakerMerge === null ||
requestParameters.speakerMerge === undefined
) {
throw new runtime.RequiredError(
"speakerMerge",
"Required parameter requestParameters.speakerMerge was null or undefined when calling v1TranscriptMergeSpeaker.",
);
}
const queryParameters: any = {};
const headerParameters: runtime.HTTPHeaders = {};
headerParameters["Content-Type"] = "application/json";
if (this.configuration && this.configuration.accessToken) {
// oauth required
headerParameters["Authorization"] = await this.configuration.accessToken(
"OAuth2AuthorizationCodeBearer",
[],
);
}
const response = await this.request(
{
path: `/v1/transcripts/{transcript_id}/speaker/merge`.replace(
`{${"transcript_id"}}`,
encodeURIComponent(String(requestParameters.transcriptId)),
),
method: "PATCH",
headers: headerParameters,
query: queryParameters,
body: SpeakerMergeToJSON(requestParameters.speakerMerge),
},
initOverrides,
);
return new runtime.JSONApiResponse(response, (jsonValue) =>
SpeakerAssignmentStatusFromJSON(jsonValue),
);
}
/**
* Transcript Merge Speaker
*/
async v1TranscriptMergeSpeaker(
requestParameters: V1TranscriptMergeSpeakerRequest,
initOverrides?: RequestInit | runtime.InitOverrideFunction,
): Promise<SpeakerAssignmentStatus> {
const response = await this.v1TranscriptMergeSpeakerRaw(
requestParameters,
initOverrides,
);
return await response.value();
}
/**
* Transcript Record Webrtc
*/

View File

@@ -43,6 +43,12 @@ export interface GetTranscriptTopic {
* @memberof GetTranscriptTopic
*/
timestamp: any | null;
/**
*
* @type {any}
* @memberof GetTranscriptTopic
*/
duration: any | null;
/**
*
* @type {any}
@@ -66,6 +72,7 @@ export function instanceOfGetTranscriptTopic(value: object): boolean {
isInstance = isInstance && "title" in value;
isInstance = isInstance && "summary" in value;
isInstance = isInstance && "timestamp" in value;
isInstance = isInstance && "duration" in value;
isInstance = isInstance && "transcript" in value;
return isInstance;
@@ -87,6 +94,7 @@ export function GetTranscriptTopicFromJSONTyped(
title: json["title"],
summary: json["summary"],
timestamp: json["timestamp"],
duration: json["duration"],
transcript: json["transcript"],
segments: !exists(json, "segments") ? undefined : json["segments"],
};
@@ -106,6 +114,7 @@ export function GetTranscriptTopicToJSON(
title: value.title,
summary: value.summary,
timestamp: value.timestamp,
duration: value.duration,
transcript: value.transcript,
segments: value.segments,
};

View File

@@ -43,6 +43,12 @@ export interface GetTranscriptTopicWithWords {
* @memberof GetTranscriptTopicWithWords
*/
timestamp: any | null;
/**
*
* @type {any}
* @memberof GetTranscriptTopicWithWords
*/
duration: any | null;
/**
*
* @type {any}
@@ -72,6 +78,7 @@ export function instanceOfGetTranscriptTopicWithWords(value: object): boolean {
isInstance = isInstance && "title" in value;
isInstance = isInstance && "summary" in value;
isInstance = isInstance && "timestamp" in value;
isInstance = isInstance && "duration" in value;
isInstance = isInstance && "transcript" in value;
return isInstance;
@@ -95,6 +102,7 @@ export function GetTranscriptTopicWithWordsFromJSONTyped(
title: json["title"],
summary: json["summary"],
timestamp: json["timestamp"],
duration: json["duration"],
transcript: json["transcript"],
segments: !exists(json, "segments") ? undefined : json["segments"],
words: !exists(json, "words") ? undefined : json["words"],
@@ -115,6 +123,7 @@ export function GetTranscriptTopicWithWordsToJSON(
title: value.title,
summary: value.summary,
timestamp: value.timestamp,
duration: value.duration,
transcript: value.transcript,
segments: value.segments,
words: value.words,

View File

@@ -0,0 +1,135 @@
/* tslint:disable */
/* eslint-disable */
/**
* FastAPI
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: 0.1.0
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import { exists, mapValues } from "../runtime";
/**
*
* @export
* @interface GetTranscriptTopicWithWordsPerSpeaker
*/
export interface GetTranscriptTopicWithWordsPerSpeaker {
/**
*
* @type {any}
* @memberof GetTranscriptTopicWithWordsPerSpeaker
*/
id: any | null;
/**
*
* @type {any}
* @memberof GetTranscriptTopicWithWordsPerSpeaker
*/
title: any | null;
/**
*
* @type {any}
* @memberof GetTranscriptTopicWithWordsPerSpeaker
*/
summary: any | null;
/**
*
* @type {any}
* @memberof GetTranscriptTopicWithWordsPerSpeaker
*/
timestamp: any | null;
/**
*
* @type {any}
* @memberof GetTranscriptTopicWithWordsPerSpeaker
*/
duration: any | null;
/**
*
* @type {any}
* @memberof GetTranscriptTopicWithWordsPerSpeaker
*/
transcript: any | null;
/**
*
* @type {any}
* @memberof GetTranscriptTopicWithWordsPerSpeaker
*/
segments?: any | null;
/**
*
* @type {any}
* @memberof GetTranscriptTopicWithWordsPerSpeaker
*/
wordsPerSpeaker?: any | null;
}
/**
* Check if a given object implements the GetTranscriptTopicWithWordsPerSpeaker interface.
*/
export function instanceOfGetTranscriptTopicWithWordsPerSpeaker(
value: object,
): boolean {
let isInstance = true;
isInstance = isInstance && "id" in value;
isInstance = isInstance && "title" in value;
isInstance = isInstance && "summary" in value;
isInstance = isInstance && "timestamp" in value;
isInstance = isInstance && "duration" in value;
isInstance = isInstance && "transcript" in value;
return isInstance;
}
export function GetTranscriptTopicWithWordsPerSpeakerFromJSON(
json: any,
): GetTranscriptTopicWithWordsPerSpeaker {
return GetTranscriptTopicWithWordsPerSpeakerFromJSONTyped(json, false);
}
export function GetTranscriptTopicWithWordsPerSpeakerFromJSONTyped(
json: any,
ignoreDiscriminator: boolean,
): GetTranscriptTopicWithWordsPerSpeaker {
if (json === undefined || json === null) {
return json;
}
return {
id: json["id"],
title: json["title"],
summary: json["summary"],
timestamp: json["timestamp"],
duration: json["duration"],
transcript: json["transcript"],
segments: !exists(json, "segments") ? undefined : json["segments"],
wordsPerSpeaker: !exists(json, "words_per_speaker")
? undefined
: json["words_per_speaker"],
};
}
export function GetTranscriptTopicWithWordsPerSpeakerToJSON(
value?: GetTranscriptTopicWithWordsPerSpeaker | null,
): any {
if (value === undefined) {
return undefined;
}
if (value === null) {
return null;
}
return {
id: value.id,
title: value.title,
summary: value.summary,
timestamp: value.timestamp,
duration: value.duration,
transcript: value.transcript,
segments: value.segments,
words_per_speaker: value.wordsPerSpeaker,
};
}

View File

@@ -24,7 +24,13 @@ export interface SpeakerAssignment {
* @type {any}
* @memberof SpeakerAssignment
*/
speaker: any | null;
speaker?: any | null;
/**
*
* @type {any}
* @memberof SpeakerAssignment
*/
participant?: any | null;
/**
*
* @type {any}
@@ -44,7 +50,6 @@ export interface SpeakerAssignment {
*/
export function instanceOfSpeakerAssignment(value: object): boolean {
let isInstance = true;
isInstance = isInstance && "speaker" in value;
isInstance = isInstance && "timestampFrom" in value;
isInstance = isInstance && "timestampTo" in value;
@@ -63,7 +68,8 @@ export function SpeakerAssignmentFromJSONTyped(
return json;
}
return {
speaker: json["speaker"],
speaker: !exists(json, "speaker") ? undefined : json["speaker"],
participant: !exists(json, "participant") ? undefined : json["participant"],
timestampFrom: json["timestamp_from"],
timestampTo: json["timestamp_to"],
};
@@ -78,6 +84,7 @@ export function SpeakerAssignmentToJSON(value?: SpeakerAssignment | null): any {
}
return {
speaker: value.speaker,
participant: value.participant,
timestamp_from: value.timestampFrom,
timestamp_to: value.timestampTo,
};

View File

@@ -0,0 +1,75 @@
/* tslint:disable */
/* eslint-disable */
/**
* FastAPI
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: 0.1.0
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import { exists, mapValues } from "../runtime";
/**
*
* @export
* @interface SpeakerMerge
*/
export interface SpeakerMerge {
/**
*
* @type {any}
* @memberof SpeakerMerge
*/
speakerFrom: any | null;
/**
*
* @type {any}
* @memberof SpeakerMerge
*/
speakerTo: any | null;
}
/**
* Check if a given object implements the SpeakerMerge interface.
*/
export function instanceOfSpeakerMerge(value: object): boolean {
let isInstance = true;
isInstance = isInstance && "speakerFrom" in value;
isInstance = isInstance && "speakerTo" in value;
return isInstance;
}
export function SpeakerMergeFromJSON(json: any): SpeakerMerge {
return SpeakerMergeFromJSONTyped(json, false);
}
export function SpeakerMergeFromJSONTyped(
json: any,
ignoreDiscriminator: boolean,
): SpeakerMerge {
if (json === undefined || json === null) {
return json;
}
return {
speakerFrom: json["speaker_from"],
speakerTo: json["speaker_to"],
};
}
export function SpeakerMergeToJSON(value?: SpeakerMerge | null): any {
if (value === undefined) {
return undefined;
}
if (value === null) {
return null;
}
return {
speaker_from: value.speakerFrom,
speaker_to: value.speakerTo,
};
}

View File

@@ -0,0 +1,75 @@
/* tslint:disable */
/* eslint-disable */
/**
* FastAPI
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: 0.1.0
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import { exists, mapValues } from "../runtime";
/**
*
* @export
* @interface SpeakerWords
*/
export interface SpeakerWords {
/**
*
* @type {any}
* @memberof SpeakerWords
*/
speaker: any | null;
/**
*
* @type {any}
* @memberof SpeakerWords
*/
words: any | null;
}
/**
* Check if a given object implements the SpeakerWords interface.
*/
export function instanceOfSpeakerWords(value: object): boolean {
let isInstance = true;
isInstance = isInstance && "speaker" in value;
isInstance = isInstance && "words" in value;
return isInstance;
}
export function SpeakerWordsFromJSON(json: any): SpeakerWords {
return SpeakerWordsFromJSONTyped(json, false);
}
export function SpeakerWordsFromJSONTyped(
json: any,
ignoreDiscriminator: boolean,
): SpeakerWords {
if (json === undefined || json === null) {
return json;
}
return {
speaker: json["speaker"],
words: json["words"],
};
}
export function SpeakerWordsToJSON(value?: SpeakerWords | null): any {
if (value === undefined) {
return undefined;
}
if (value === null) {
return null;
}
return {
speaker: value.speaker,
words: value.words,
};
}

View File

@@ -8,12 +8,15 @@ export * from "./GetTranscript";
export * from "./GetTranscriptSegmentTopic";
export * from "./GetTranscriptTopic";
export * from "./GetTranscriptTopicWithWords";
export * from "./GetTranscriptTopicWithWordsPerSpeaker";
export * from "./HTTPValidationError";
export * from "./PageGetTranscript";
export * from "./Participant";
export * from "./RtcOffer";
export * from "./SpeakerAssignment";
export * from "./SpeakerAssignmentStatus";
export * from "./SpeakerMerge";
export * from "./SpeakerWords";
export * from "./TranscriptParticipant";
export * from "./UpdateParticipant";
export * from "./UpdateTranscript";