Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -18,20 +18,17 @@ public abstract class IndividualScenario {
* @since v0.4.0
* @post After receiving the resource ID, call the start API to start cloud
* recording.
* @param cname The name of the channel to be recorded.
* @param uid The user ID used by the cloud recording service in the
* RTC channel to identify the recording service in the
* channel.
* @param enablePostpone Whether to postpone the recording.
* - true: Postpone the recording.
* - false: Start the recording immediately.
* @param clientRequest The request body. See
* {@link AcquireIndividualResourceClientReq} for
* details.
* @param cname The name of the channel to be recorded.
* @param uid The user ID used by the cloud recording service in the
* RTC channel to identify the recording service in the
* channel.
* @param clientRequest The request body. See
* {@link AcquireIndividualResourceClientReq} for
* details.
* @return Returns the acquire resource result. See
* {@link AcquireResourceRes} for details.
*/
public abstract Mono<AcquireResourceRes> acquire(String cname, String uid, boolean enablePostpone,
public abstract Mono<AcquireResourceRes> acquire(String cname, String uid,
AcquireIndividualResourceClientReq clientRequest);

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,146 +19,135 @@

public class IndividualScenarioImpl extends IndividualScenario {

private final AcquireResourceAPI acquireResourceAPI;
private final AcquireResourceAPI acquireResourceAPI;

private final QueryResourceAPI queryResourceAPI;
private final QueryResourceAPI queryResourceAPI;

private final StartResourceAPI startResourceAPI;
private final StartResourceAPI startResourceAPI;

private final UpdateResourceAPI updateResourceAPI;
private final UpdateResourceAPI updateResourceAPI;

private final StopResourceAPI stopResourceAPI;
private final StopResourceAPI stopResourceAPI;

public IndividualScenarioImpl(AcquireResourceAPI acquireResourceAPI,
QueryResourceAPI queryResourceAPI,
StartResourceAPI startResourceAPI,
UpdateResourceAPI updateResourceAPI,
StopResourceAPI stopResourceAPI) {
this.acquireResourceAPI = acquireResourceAPI;
this.queryResourceAPI = queryResourceAPI;
this.startResourceAPI = startResourceAPI;
this.updateResourceAPI = updateResourceAPI;
this.stopResourceAPI = stopResourceAPI;
}
public IndividualScenarioImpl(AcquireResourceAPI acquireResourceAPI,
QueryResourceAPI queryResourceAPI,
StartResourceAPI startResourceAPI,
UpdateResourceAPI updateResourceAPI,
StopResourceAPI stopResourceAPI) {
this.acquireResourceAPI = acquireResourceAPI;
this.queryResourceAPI = queryResourceAPI;
this.startResourceAPI = startResourceAPI;
this.updateResourceAPI = updateResourceAPI;
this.stopResourceAPI = stopResourceAPI;
}

@Override
public Mono<AcquireResourceRes> acquire(String cname, String uid,
AcquireIndividualResourceClientReq clientRequest) {

StartResourceReq.StartClientRequest startParameter = null;
if (clientRequest.getStartParameter() != null) {
startParameter = StartResourceReq.StartClientRequest.builder()
.token(clientRequest.getStartParameter().getToken())
.storageConfig(clientRequest.getStartParameter()
.getStorageConfig())
.recordingConfig(clientRequest.getStartParameter()
.getRecordingConfig())
.recordingFileConfig(clientRequest.getStartParameter()
.getRecordingFileConfig())
.snapshotConfig(clientRequest.getStartParameter()
.getSnapshotConfig())
.build();
}

AcquireResourceReq req = AcquireResourceReq.builder()
.cname(cname)
.uid(uid)
.clientRequest(AcquireResourceReq.ClientRequest.builder()
.scene(0)
.resourceExpiredHour(clientRequest.getResourceExpiredHour())
.regionAffinity(clientRequest.getRegionAffinity())
.excludeResourceIds(clientRequest.getExcludeResourceIds())
.startParameter(startParameter)
.build())
.build();

return this.acquireResourceAPI.handle(req);
}

@Override
public Mono<AcquireResourceRes> acquire(String cname, String uid, boolean enablePostpone,
AcquireIndividualResourceClientReq clientRequest) {
int scene = 0;
@Override
public Mono<StartResourceRes> start(String cname, String uid, String resourceId,
StartIndividualRecordingClientReq clientRequest) {
return this.startResourceAPI.handle(resourceId, CloudRecordingModeEnum.INDIVIDUAL, StartResourceReq
.builder()
.cname(cname)
.uid(uid)
.clientRequest(StartResourceReq.StartClientRequest.builder()
.token(clientRequest.getToken())
.storageConfig(clientRequest.getStorageConfig())
.recordingConfig(clientRequest.getRecordingConfig())
.recordingFileConfig(clientRequest.getRecordingFileConfig())
.snapshotConfig(clientRequest.getSnapshotConfig())
.build())
.build());
}

if (enablePostpone) {
scene = 2;
@Override
public Mono<QueryIndividualRecordingResourceRes> query(String resourceId, String sid) {
return this.queryResourceAPI.handle(resourceId, sid, CloudRecordingModeEnum.INDIVIDUAL)
.handle((res, sink) -> {
sink.next(QueryIndividualRecordingResourceRes.builder()
.cname(res.getCname())
.uid(res.getUid())
.resourceId(res.getResourceId())
.sid(res.getSid())
.serverResponse(res.getQueryIndividualRecordingServerResponse())
.build());

sink.complete();
});
}

StartResourceReq.StartClientRequest startParameter = null;
if (clientRequest.getStartParameter() != null) {
startParameter = StartResourceReq.StartClientRequest.builder()
.token(clientRequest.getStartParameter().getToken())
.storageConfig(clientRequest.getStartParameter()
.getStorageConfig())
.recordingConfig(clientRequest.getStartParameter()
.getRecordingConfig())
.recordingFileConfig(clientRequest.getStartParameter()
.getRecordingFileConfig())
.snapshotConfig(clientRequest.getStartParameter()
.getSnapshotConfig())
.appsCollection(clientRequest.getStartParameter()
.getAppsCollection())
.transcodeOptions(clientRequest.getStartParameter()
.getTranscodeOptions())
.build();
@Override
public Mono<QueryIndividualRecordingVideoScreenshotResourceRes> queryVideoScreenshot(String resourceId,
String sid) {
return this.queryResourceAPI.handle(resourceId, sid, CloudRecordingModeEnum.INDIVIDUAL)
.handle((res, sink) -> {
sink.next(QueryIndividualRecordingVideoScreenshotResourceRes.builder()
.cname(res.getCname())
.uid(res.getUid())
.resourceId(res.getResourceId())
.sid(res.getSid())
.serverResponse(res
.getQueryIndividualVideoScreenshotServerResponse())
.build());

sink.complete();
});
}

AcquireResourceReq req = AcquireResourceReq.builder()
.cname(cname)
.uid(uid)
.clientRequest(AcquireResourceReq.ClientRequest.builder()
.scene(scene)
.resourceExpiredHour(clientRequest.getResourceExpiredHour())
.regionAffinity(clientRequest.getRegionAffinity())
.excludeResourceIds(clientRequest.getExcludeResourceIds())
.startParameter(startParameter)
.build())
.build();

return this.acquireResourceAPI.handle(req);
}

@Override
public Mono<StartResourceRes> start(String cname, String uid, String resourceId,
StartIndividualRecordingClientReq clientRequest) {
return this.startResourceAPI.handle(resourceId, CloudRecordingModeEnum.INDIVIDUAL, StartResourceReq
.builder()
.cname(cname)
.uid(uid)
.clientRequest(StartResourceReq.StartClientRequest.builder()
.token(clientRequest.getToken())
.storageConfig(clientRequest.getStorageConfig())
.recordingConfig(clientRequest.getRecordingConfig())
.recordingFileConfig(clientRequest.getRecordingFileConfig())
.snapshotConfig(clientRequest.getSnapshotConfig())
.appsCollection(clientRequest.getAppsCollection())
.transcodeOptions(clientRequest.getTranscodeOptions())
.build())
.build());
}

@Override
public Mono<QueryIndividualRecordingResourceRes> query(String resourceId, String sid) {
return this.queryResourceAPI.handle(resourceId, sid, CloudRecordingModeEnum.INDIVIDUAL)
.handle((res, sink) -> {
sink.next(QueryIndividualRecordingResourceRes.builder()
.cname(res.getCname())
.uid(res.getUid())
.resourceId(res.getResourceId())
.sid(res.getSid())
.serverResponse(res.getQueryIndividualRecordingServerResponse())
.build());

sink.complete();
});
}

@Override
public Mono<QueryIndividualRecordingVideoScreenshotResourceRes> queryVideoScreenshot(String resourceId,
String sid) {
return this.queryResourceAPI.handle(resourceId, sid, CloudRecordingModeEnum.INDIVIDUAL)
.handle((res, sink) -> {
sink.next(QueryIndividualRecordingVideoScreenshotResourceRes.builder()
.cname(res.getCname())
.uid(res.getUid())
.resourceId(res.getResourceId())
.sid(res.getSid())
.serverResponse(res
.getQueryIndividualVideoScreenshotServerResponse())
.build());

sink.complete();
});
}

@Override
public Mono<UpdateResourceRes> update(String cname, String uid, String resourceId, String sid,
UpdateIndividualRecordingResourceClientReq clientRequest) {
return this.updateResourceAPI.handle(resourceId, sid, CloudRecordingModeEnum.INDIVIDUAL,
UpdateResourceReq.builder()
.cname(cname)
.uid(uid)
.clientRequest(UpdateResourceReq.ClientRequest.builder()
.streamSubscribe(clientRequest.getStreamSubscribe())
.build())
.build());
}

@Override
public Mono<StopResourceRes> stop(String cname, String uid, String resourceId, String sid, boolean asyncStop) {
return this.stopResourceAPI.handle(resourceId, sid, CloudRecordingModeEnum.INDIVIDUAL,
StopResourceReq.builder()
.cname(cname)
.uid(uid)
.clientRequest(StopResourceReq.StopClientRequest.builder()
.asyncStop(asyncStop)
.build())
.build());
}
@Override
public Mono<UpdateResourceRes> update(String cname, String uid, String resourceId, String sid,
UpdateIndividualRecordingResourceClientReq clientRequest) {
return this.updateResourceAPI.handle(resourceId, sid, CloudRecordingModeEnum.INDIVIDUAL,
UpdateResourceReq.builder()
.cname(cname)
.uid(uid)
.clientRequest(UpdateResourceReq.ClientRequest.builder()
.streamSubscribe(clientRequest.getStreamSubscribe())
.build())
.build());
}

@Override
public Mono<StopResourceRes> stop(String cname, String uid, String resourceId, String sid, boolean asyncStop) {
return this.stopResourceAPI.handle(resourceId, sid, CloudRecordingModeEnum.INDIVIDUAL,
StopResourceReq.builder()
.cname(cname)
.uid(uid)
.clientRequest(StopResourceReq.StopClientRequest.builder()
.asyncStop(asyncStop)
.build())
.build());
}
}
Loading