Skip to content

Commit f270a2c

Browse files
committed
Rename SortDirection data model to SortDirectionDto.
This requires us providing mapping functions for objects that use SortDirection.
1 parent 1cd5d92 commit f270a2c

3 files changed

Lines changed: 139 additions & 24 deletions

File tree

extensions/ql-vscode/src/query-history/store/data-mapper.ts

Lines changed: 62 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,18 @@ import {
1111
QueryEvaluationInfoDto,
1212
InitialQueryInfoDto,
1313
QueryHistoryLocalQueryDto,
14+
SortDirectionDto,
15+
InterpretedResultsSortStateDto,
16+
SortedResultSetInfoDto,
17+
RawResultsSortStateDto,
1418
} from "./query-history-local-query-dto";
1519
import { QueryHistoryDataItem } from "./query-history-data";
20+
import {
21+
InterpretedResultsSortState,
22+
RawResultsSortState,
23+
SortDirection,
24+
SortedResultSetInfo,
25+
} from "../../pure/interface-types";
1626

1727
// Maps Query History Data Models to Domain Models
1828

@@ -54,6 +64,16 @@ function mapLocalQueryDataItemToDomainModel(
5464
function mapCompletedQueryInfoDataToDomainModel(
5565
completedQuery: CompletedQueryInfoDto,
5666
): CompletedQueryInfo {
67+
const sortState =
68+
completedQuery.interpretedResultsSortState &&
69+
mapSortStateToDomainModel(completedQuery.interpretedResultsSortState);
70+
71+
const sortedResults = Object.fromEntries(
72+
Object.entries(completedQuery.sortedResultsInfo).map(([key, value]) => {
73+
return [key, mapSortedResultSetInfoDtoToDomainModel(value)];
74+
}),
75+
);
76+
5777
return new CompletedQueryInfo(
5878
mapQueryEvaluationInfoDataToDomainModel(completedQuery.query),
5979
{
@@ -67,9 +87,9 @@ function mapCompletedQueryInfoDataToDomainModel(
6787
completedQuery.logFileLocation,
6888
completedQuery.successful ?? completedQuery.sucessful,
6989
completedQuery.message,
70-
completedQuery.interpretedResultsSortState,
90+
sortState,
7191
completedQuery.resultCount,
72-
completedQuery.sortedResultsInfo,
92+
sortedResults,
7393
);
7494
}
7595

@@ -103,3 +123,43 @@ function mapQueryEvaluationInfoDataToDomainModel(
103123
evaluationInfo.metadata,
104124
);
105125
}
126+
127+
function mapSortDirectionToDomainModel(
128+
sortDirection: SortDirectionDto,
129+
): SortDirection {
130+
switch (sortDirection) {
131+
case SortDirectionDto.asc:
132+
return SortDirection.asc;
133+
case SortDirectionDto.desc:
134+
return SortDirection.desc;
135+
}
136+
}
137+
138+
function mapSortStateToDomainModel(
139+
sortState: InterpretedResultsSortStateDto,
140+
): InterpretedResultsSortState {
141+
return {
142+
sortBy: sortState.sortBy,
143+
sortDirection: mapSortDirectionToDomainModel(sortState.sortDirection),
144+
};
145+
}
146+
147+
function mapSortedResultSetInfoDtoToDomainModel(
148+
sortedResultSetInfo: SortedResultSetInfoDto,
149+
): SortedResultSetInfo {
150+
return {
151+
resultsPath: sortedResultSetInfo.resultsPath,
152+
sortState: mapRawResultsSortStateToDomainModel(
153+
sortedResultSetInfo.sortState,
154+
),
155+
};
156+
}
157+
158+
function mapRawResultsSortStateToDomainModel(
159+
sortState: RawResultsSortStateDto,
160+
): RawResultsSortState {
161+
return {
162+
columnIndex: sortState.columnIndex,
163+
sortDirection: mapSortDirectionToDomainModel(sortState.sortDirection),
164+
};
165+
}

extensions/ql-vscode/src/query-history/store/domain-mapper.ts

Lines changed: 71 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,26 @@
11
import { assertNever } from "../../pure/helpers-pure";
2-
import { LocalQueryInfo, InitialQueryInfo } from "../../query-results";
2+
import {
3+
LocalQueryInfo,
4+
InitialQueryInfo,
5+
CompletedQueryInfo,
6+
} from "../../query-results";
37
import { QueryEvaluationInfo } from "../../run-queries-shared";
48
import { QueryHistoryInfo } from "../query-history-info";
59
import {
610
QueryHistoryLocalQueryDto,
711
InitialQueryInfoDto,
812
QueryEvaluationInfoDto,
13+
CompletedQueryInfoDto,
14+
SortedResultSetInfoDto,
15+
SortDirectionDto,
916
} from "./query-history-local-query-dto";
1017
import { QueryHistoryDataItem } from "./query-history-data";
1118
import { VariantAnalysisDataItem } from "./variant-analysis-data-item";
19+
import {
20+
RawResultsSortState,
21+
SortDirection,
22+
SortedResultSetInfo,
23+
} from "../../pure/interface-types";
1224

1325
// Maps Query History Domain Models to Data Models
1426

@@ -38,22 +50,65 @@ function mapLocalQueryInfoToDataModel(
3850
jsonEvalLogSummaryLocation: query.jsonEvalLogSummaryLocation,
3951
evalLogSummarySymbolsLocation: query.evalLogSummarySymbolsLocation,
4052
failureReason: query.failureReason,
41-
completedQuery: query.completedQuery && {
42-
query: mapQueryEvaluationInfoToDataModel(query.completedQuery.query),
43-
result: {
44-
runId: query.completedQuery.result.runId,
45-
queryId: query.completedQuery.result.queryId,
46-
resultType: query.completedQuery.result.resultType,
47-
evaluationTime: query.completedQuery.result.evaluationTime,
48-
message: query.completedQuery.result.message,
49-
logFileLocation: query.completedQuery.result.logFileLocation,
50-
},
51-
logFileLocation: query.completedQuery.logFileLocation,
52-
successful: query.completedQuery.successful,
53-
message: query.completedQuery.message,
54-
resultCount: query.completedQuery.resultCount,
55-
sortedResultsInfo: query.completedQuery.sortedResultsInfo,
53+
completedQuery:
54+
query.completedQuery &&
55+
mapCompletedQueryToDataModel(query.completedQuery),
56+
};
57+
}
58+
59+
function mapCompletedQueryToDataModel(
60+
query: CompletedQueryInfo,
61+
): CompletedQueryInfoDto {
62+
const sortedResults = Object.fromEntries(
63+
Object.entries(query.sortedResultsInfo).map(([key, value]) => {
64+
return [key, mapSortedResultSetInfoToDataModel(value)];
65+
}),
66+
);
67+
68+
return {
69+
query: mapQueryEvaluationInfoToDataModel(query.query),
70+
result: {
71+
runId: query.result.runId,
72+
queryId: query.result.queryId,
73+
resultType: query.result.resultType,
74+
evaluationTime: query.result.evaluationTime,
75+
message: query.result.message,
76+
logFileLocation: query.result.logFileLocation,
5677
},
78+
logFileLocation: query.logFileLocation,
79+
successful: query.successful,
80+
message: query.message,
81+
resultCount: query.resultCount,
82+
sortedResultsInfo: sortedResults,
83+
};
84+
}
85+
86+
function mapSortDirectionToDomainModel(
87+
sortDirection: SortDirection,
88+
): SortDirectionDto {
89+
switch (sortDirection) {
90+
case SortDirection.asc:
91+
return SortDirectionDto.asc;
92+
case SortDirection.desc:
93+
return SortDirectionDto.desc;
94+
}
95+
}
96+
97+
function mapRawResultsSortStateToDataModel(
98+
sortState: RawResultsSortState,
99+
): SortedResultSetInfoDto["sortState"] {
100+
return {
101+
columnIndex: sortState.columnIndex,
102+
sortDirection: mapSortDirectionToDomainModel(sortState.sortDirection),
103+
};
104+
}
105+
106+
function mapSortedResultSetInfoToDataModel(
107+
resultSet: SortedResultSetInfo,
108+
): SortedResultSetInfoDto {
109+
return {
110+
resultsPath: resultSet.resultsPath,
111+
sortState: mapRawResultsSortStateToDataModel(resultSet.sortState),
57112
};
58113
}
59114

extensions/ql-vscode/src/query-history/store/query-history-local-query-dto.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,24 +48,24 @@ export interface CompletedQueryInfoDto {
4848
interpretedResultsSortState?: InterpretedResultsSortStateDto;
4949
}
5050

51-
interface InterpretedResultsSortStateDto {
51+
export interface InterpretedResultsSortStateDto {
5252
sortBy: InterpretedResultsSortColumnDto;
53-
sortDirection: SortDirection;
53+
sortDirection: SortDirectionDto;
5454
}
5555

5656
type InterpretedResultsSortColumnDto = "alert-message";
5757

58-
interface SortedResultSetInfoDto {
58+
export interface SortedResultSetInfoDto {
5959
resultsPath: string;
6060
sortState: RawResultsSortStateDto;
6161
}
6262

63-
interface RawResultsSortStateDto {
63+
export interface RawResultsSortStateDto {
6464
columnIndex: number;
65-
sortDirection: SortDirection;
65+
sortDirection: SortDirectionDto;
6666
}
6767

68-
enum SortDirection {
68+
export enum SortDirectionDto {
6969
asc,
7070
desc,
7171
}

0 commit comments

Comments
 (0)