Map data types
This commit is contained in:
@@ -0,0 +1,25 @@
|
|||||||
|
export interface VariantAnalysisRepositoryTaskData {
|
||||||
|
repository: RepositoryData;
|
||||||
|
analysisStatus: VariantAnalysisRepoStatusData;
|
||||||
|
resultCount?: number;
|
||||||
|
artifactSizeInBytes?: number;
|
||||||
|
failureMessage?: string;
|
||||||
|
databaseCommitSha?: string;
|
||||||
|
sourceLocationPrefix?: string;
|
||||||
|
artifactUrl?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface RepositoryData {
|
||||||
|
id: number;
|
||||||
|
fullName: string;
|
||||||
|
private: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export enum VariantAnalysisRepoStatusData {
|
||||||
|
Pending = "pending",
|
||||||
|
InProgress = "inProgress",
|
||||||
|
Succeeded = "succeeded",
|
||||||
|
Failed = "failed",
|
||||||
|
Canceled = "canceled",
|
||||||
|
TimedOut = "timedOut",
|
||||||
|
}
|
||||||
@@ -1,18 +1,27 @@
|
|||||||
import { outputJson, readJson } from "fs-extra";
|
import { outputJson, readJson } from "fs-extra";
|
||||||
import { join } from "path";
|
import { join } from "path";
|
||||||
import { VariantAnalysisRepositoryTask } from "../shared/variant-analysis";
|
import { VariantAnalysisRepositoryTask } from "../shared/variant-analysis";
|
||||||
|
import { mapRepoTaskToData } from "./repo-task-to-data-mapper";
|
||||||
|
import { mapRepoTaskToDomain } from "./repo-task-to-domain-mapper";
|
||||||
|
|
||||||
export const REPO_TASK_FILENAME = "repo_task.json";
|
export const REPO_TASK_FILENAME = "repo_task.json";
|
||||||
|
|
||||||
export function writeRepoTask(
|
export async function writeRepoTask(
|
||||||
storageDirectory: string,
|
storageDirectory: string,
|
||||||
repoTask: VariantAnalysisRepositoryTask,
|
repoTask: VariantAnalysisRepositoryTask,
|
||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
return outputJson(join(storageDirectory, REPO_TASK_FILENAME), repoTask);
|
const repoTaskData = mapRepoTaskToData(repoTask);
|
||||||
|
return await outputJson(
|
||||||
|
join(storageDirectory, REPO_TASK_FILENAME),
|
||||||
|
repoTaskData,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function readRepoTask(
|
export async function readRepoTask(
|
||||||
storageDirectory: string,
|
storageDirectory: string,
|
||||||
): Promise<VariantAnalysisRepositoryTask> {
|
): Promise<VariantAnalysisRepositoryTask> {
|
||||||
return readJson(join(storageDirectory, REPO_TASK_FILENAME));
|
const repoTaskData = await readJson(
|
||||||
|
join(storageDirectory, REPO_TASK_FILENAME),
|
||||||
|
);
|
||||||
|
return mapRepoTaskToDomain(repoTaskData);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,49 @@
|
|||||||
|
import { assertNever } from "../../pure/helpers-pure";
|
||||||
|
import {
|
||||||
|
VariantAnalysisRepositoryTask,
|
||||||
|
VariantAnalysisRepoStatus,
|
||||||
|
} from "../shared/variant-analysis";
|
||||||
|
import {
|
||||||
|
VariantAnalysisRepositoryTaskData,
|
||||||
|
VariantAnalysisRepoStatusData,
|
||||||
|
} from "./repo-task-data-types";
|
||||||
|
|
||||||
|
export function mapRepoTaskToData(
|
||||||
|
repoTask: VariantAnalysisRepositoryTask,
|
||||||
|
): VariantAnalysisRepositoryTaskData {
|
||||||
|
return {
|
||||||
|
repository: {
|
||||||
|
id: repoTask.repository.id,
|
||||||
|
fullName: repoTask.repository.fullName,
|
||||||
|
private: repoTask.repository.private,
|
||||||
|
},
|
||||||
|
analysisStatus: mapRepoTaskAnalysisStatusToData(repoTask.analysisStatus),
|
||||||
|
resultCount: repoTask.resultCount,
|
||||||
|
artifactSizeInBytes: repoTask.artifactSizeInBytes,
|
||||||
|
failureMessage: repoTask.failureMessage,
|
||||||
|
databaseCommitSha: repoTask.databaseCommitSha,
|
||||||
|
sourceLocationPrefix: repoTask.sourceLocationPrefix,
|
||||||
|
artifactUrl: repoTask.artifactUrl,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function mapRepoTaskAnalysisStatusToData(
|
||||||
|
analysisStatus: VariantAnalysisRepoStatus,
|
||||||
|
): VariantAnalysisRepoStatusData {
|
||||||
|
switch (analysisStatus) {
|
||||||
|
case VariantAnalysisRepoStatus.Pending:
|
||||||
|
return VariantAnalysisRepoStatusData.Pending;
|
||||||
|
case VariantAnalysisRepoStatus.InProgress:
|
||||||
|
return VariantAnalysisRepoStatusData.InProgress;
|
||||||
|
case VariantAnalysisRepoStatus.Succeeded:
|
||||||
|
return VariantAnalysisRepoStatusData.Succeeded;
|
||||||
|
case VariantAnalysisRepoStatus.Failed:
|
||||||
|
return VariantAnalysisRepoStatusData.Failed;
|
||||||
|
case VariantAnalysisRepoStatus.Canceled:
|
||||||
|
return VariantAnalysisRepoStatusData.Canceled;
|
||||||
|
case VariantAnalysisRepoStatus.TimedOut:
|
||||||
|
return VariantAnalysisRepoStatusData.TimedOut;
|
||||||
|
default:
|
||||||
|
assertNever(analysisStatus);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
import { assertNever } from "../../pure/helpers-pure";
|
||||||
|
import {
|
||||||
|
VariantAnalysisRepositoryTask,
|
||||||
|
VariantAnalysisRepoStatus,
|
||||||
|
} from "../shared/variant-analysis";
|
||||||
|
import {
|
||||||
|
VariantAnalysisRepositoryTaskData,
|
||||||
|
VariantAnalysisRepoStatusData,
|
||||||
|
} from "./repo-task-data-types";
|
||||||
|
|
||||||
|
export function mapRepoTaskToDomain(
|
||||||
|
repoTask: VariantAnalysisRepositoryTaskData,
|
||||||
|
): VariantAnalysisRepositoryTask {
|
||||||
|
return {
|
||||||
|
repository: {
|
||||||
|
id: repoTask.repository.id,
|
||||||
|
fullName: repoTask.repository.fullName,
|
||||||
|
private: repoTask.repository.private,
|
||||||
|
},
|
||||||
|
analysisStatus: mapRepoTaskAnalysisStatusToDomain(repoTask.analysisStatus),
|
||||||
|
resultCount: repoTask.resultCount,
|
||||||
|
artifactSizeInBytes: repoTask.artifactSizeInBytes,
|
||||||
|
failureMessage: repoTask.failureMessage,
|
||||||
|
databaseCommitSha: repoTask.databaseCommitSha,
|
||||||
|
sourceLocationPrefix: repoTask.sourceLocationPrefix,
|
||||||
|
artifactUrl: repoTask.artifactUrl,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function mapRepoTaskAnalysisStatusToDomain(
|
||||||
|
analysisStatus: VariantAnalysisRepoStatusData,
|
||||||
|
): VariantAnalysisRepoStatus {
|
||||||
|
switch (analysisStatus) {
|
||||||
|
case VariantAnalysisRepoStatusData.Pending:
|
||||||
|
return VariantAnalysisRepoStatus.Pending;
|
||||||
|
case VariantAnalysisRepoStatusData.InProgress:
|
||||||
|
return VariantAnalysisRepoStatus.InProgress;
|
||||||
|
case VariantAnalysisRepoStatusData.Succeeded:
|
||||||
|
return VariantAnalysisRepoStatus.Succeeded;
|
||||||
|
case VariantAnalysisRepoStatusData.Failed:
|
||||||
|
return VariantAnalysisRepoStatus.Failed;
|
||||||
|
case VariantAnalysisRepoStatusData.Canceled:
|
||||||
|
return VariantAnalysisRepoStatus.Canceled;
|
||||||
|
case VariantAnalysisRepoStatusData.TimedOut:
|
||||||
|
return VariantAnalysisRepoStatus.TimedOut;
|
||||||
|
default:
|
||||||
|
assertNever(analysisStatus);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user