Skip to content

Commit 7a8f8c5

Browse files
Merge pull request #12 from topcoder-platform/feature/plat-2427
Feature/plat 2427
2 parents b092001 + d53d668 commit 7a8f8c5

File tree

7 files changed

+146
-5
lines changed

7 files changed

+146
-5
lines changed

src/domain/LegacySubmission.ts

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
1-
import { QueryBuilder, QueryResult } from "@topcoder-framework/client-relational";
1+
import { Query, QueryBuilder, QueryResult } from "@topcoder-framework/client-relational";
2+
import { UpdateResult } from "@topcoder-framework/lib-common";
3+
import { Util } from "../common/Util";
24
import SubmissionQueryHelper from "../helper/query-helper/SubmissionQueryHelper";
35
import { queryRunner } from "../helper/QueryRunner";
4-
import { CreateSubmissionInput } from "../models/domain-layer/legacy/submission";
5-
import { SubmissionSchema } from "../schema/project/Submission";
6+
import {
7+
CreateSubmissionInput, UpdateSubmissionInput
8+
} from "../models/domain-layer/legacy/submission";
9+
import { LegacySubmissionSchema } from "../schema/submission/Submission";
610

711
const submissionTypes = {
812
'Contest Submission': { id: 1, roleId: 1 },
@@ -97,6 +101,18 @@ class LegacySubmissionDomain {
97101
// };
98102
// return Promise.resolve(10);
99103
// }
104+
105+
public async update(input: UpdateSubmissionInput): Promise<UpdateResult> {
106+
const query: Query = new QueryBuilder(LegacySubmissionSchema)
107+
.update({ ...input })
108+
.where(...Util.toScanCriteria({ ...input } as { [key: string]: number|string|undefined }))
109+
.build();
110+
111+
const { affectedRows } = await queryRunner.run(query);
112+
return {
113+
updatedCount: affectedRows || 0,
114+
}
115+
}
100116
}
101117

102118
export default new LegacySubmissionDomain();

src/domain/LegacyUpload.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import { Query, QueryBuilder } from "@topcoder-framework/client-relational";
2+
import { UpdateResult } from "@topcoder-framework/lib-common";
3+
import { Util } from "../common/Util";
4+
import { queryRunner } from "../helper/QueryRunner";
5+
import {
6+
UpdateUploadInput,
7+
} from "../models/domain-layer/legacy/upload";
8+
import { UploadSchema } from "../schema/submission/Upload";
9+
10+
class LegacySubmissionDomain {
11+
public async update(input: UpdateUploadInput): Promise<UpdateResult> {
12+
const query: Query = new QueryBuilder(UploadSchema)
13+
.update({ ...input })
14+
.where(...Util.toScanCriteria({ ...input } as { [key: string]: number|string|undefined }))
15+
.build();
16+
17+
const { affectedRows } = await queryRunner.run(query);
18+
return {
19+
updatedCount: affectedRows || 0,
20+
}
21+
}
22+
}
23+
24+
export default new LegacySubmissionDomain();

src/schema/submission/Submission.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { ColumnType, Schema } from "@topcoder-framework/client-relational";
2+
import { LegacySubmission } from "../../models/domain-layer/legacy/submission";
3+
import { AuditColumns } from "../common/AuditColumns";
4+
5+
export const LegacySubmissionSchema: Schema<LegacySubmission> = {
6+
dbSchema: "tcs_catalog",
7+
tableName: "submission",
8+
idColumn: "submission_id",
9+
idSequence: "submission_id_seq",
10+
idTable: "submission",
11+
columns: {
12+
submissionId: { name: "submission_id", type: ColumnType.COLUMN_TYPE_INT },
13+
submissionStatusId: { name: "submission_status_id", type: ColumnType.COLUMN_TYPE_INT },
14+
submissionTypeId: { name: "submission_type_id", type: ColumnType.COLUMN_TYPE_INT },
15+
uploadId: { name: "upload_id", type: ColumnType.COLUMN_TYPE_INT },
16+
screeningScore: { name: "screening_score", type: ColumnType.COLUMN_TYPE_INT },
17+
initialScore: { name: "initial_score", type: ColumnType.COLUMN_TYPE_INT },
18+
finalScore: { name: "final_score", type: ColumnType.COLUMN_TYPE_INT },
19+
...AuditColumns,
20+
},
21+
};

src/schema/submission/Upload.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import { ColumnType, Schema } from "@topcoder-framework/client-relational";
2+
import { Upload } from "../../models/domain-layer/legacy/upload";
3+
import { AuditColumns } from "../common/AuditColumns";
4+
5+
export const UploadSchema: Schema<Upload> = {
6+
dbSchema: "tcs_catalog",
7+
tableName: "upload",
8+
idColumn: "upload_id",
9+
idSequence: "upload_id_seq",
10+
idTable: "upload",
11+
columns: {
12+
uploadId: { name: "upload_id", type: ColumnType.COLUMN_TYPE_INT },
13+
projectId: { name: "project_id", type: ColumnType.COLUMN_TYPE_INT },
14+
resourceId: { name: "resource_id", type: ColumnType.COLUMN_TYPE_INT },
15+
projectPhaseId: { name: "project_phase_id", type: ColumnType.COLUMN_TYPE_INT },
16+
uploadTypeId: { name: "upload_type_id", type: ColumnType.COLUMN_TYPE_INT },
17+
url: { name: "url", type: ColumnType.COLUMN_TYPE_STRING },
18+
uploadStatusId: { name: "upload_status_id", type: ColumnType.COLUMN_TYPE_INT },
19+
parameter: { name: "parameter", type: ColumnType.COLUMN_TYPE_STRING },
20+
...AuditColumns,
21+
},
22+
};

src/server.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import { LegacyResourceServer, LegacyResourceService } from "./service/Resource"
2929
import { LegacyReviewServer, LegacyReviewService } from "./service/Review";
3030
import { LegacySyncServer, LegacySyncService } from "./service/Sync";
3131
import { LegacyTermServer, LegacyTermService } from "./service/Term";
32+
import { LegacyUploadServer, LegacyUploadService } from "./service/LegacyUpload";
3233

3334
const server = new Server({
3435
"grpc.max_send_message_length": -1,
@@ -51,6 +52,7 @@ server.addService(LegacyResourceService, new LegacyResourceServer());
5152
server.addService(LegacyGroupContestEligibilityService, new LegacyGroupContestEligibilityServer());
5253
server.addService(LegacyChallengePaymentService, new LegacyChallengePaymentServer());
5354
server.addService(LegacyPrizeServiceService, new LegacyPrizeServer());
55+
server.addService(LegacyUploadService, new LegacyUploadServer());
5456
server.addService(LegacySyncService, new LegacySyncServer());
5557

5658
server.bindAsync(

src/service/LegacySubmission.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,11 @@ class LegacySubmissionServerImpl implements LegacySubmissionServer {
4747
update: handleUnaryCall<UpdateSubmissionInput, UpdateResult> = (
4848
call: ServerUnaryCall<UpdateSubmissionInput, UpdateResult>,
4949
callback: sendUnaryData<UpdateResult>
50-
) => { };
50+
) => {
51+
LegacySubmissionDomain.update(call.request)
52+
.then((response) => callback(null, response))
53+
.catch((err) => callback(err, null));
54+
};
5155
}
5256

53-
export { LegacySubmissionServerImpl as LegacySubmissionServer, LegacySubmissionService };
57+
export { LegacySubmissionServerImpl as LegacySubmissionServer, LegacySubmissionService };

src/service/LegacyUpload.ts

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
import { handleUnaryCall, sendUnaryData, ServerUnaryCall, UntypedHandleCall } from "@grpc/grpc-js";
2+
import { CreateResult, Empty, LookupCriteria, ScanRequest, ScanResult, UpdateResult
3+
} from "@topcoder-framework/lib-common";
4+
import LegacyUploadDomain from '../domain/LegacyUpload'
5+
6+
import { LegacyUploadServer, LegacyUploadService } from '../models/domain-layer/legacy/services/upload';
7+
import { Upload, CreateUploadInput, DeleteUploadInput, UploadList, UpdateUploadInput } from "../models/domain-layer/legacy/upload";
8+
9+
class LegacyUploadServerImpl implements LegacyUploadServer {
10+
[name: string]: UntypedHandleCall;
11+
12+
scan: handleUnaryCall<ScanRequest, ScanResult> = (
13+
call: ServerUnaryCall<ScanRequest, ScanResult>,
14+
callback: sendUnaryData<ScanResult>
15+
) => {
16+
// not implemented
17+
};
18+
19+
lookup: handleUnaryCall<LookupCriteria, Upload>
20+
= (
21+
call: ServerUnaryCall<LookupCriteria, Upload>,
22+
callback: sendUnaryData<Upload>
23+
) => {
24+
// not implemented
25+
};
26+
27+
create: handleUnaryCall<CreateUploadInput, CreateResult> = (
28+
call: ServerUnaryCall<CreateUploadInput, CreateResult>,
29+
callback: sendUnaryData<CreateResult>
30+
) => {
31+
// not implemented
32+
};
33+
34+
delete: handleUnaryCall<DeleteUploadInput, UploadList> = (
35+
call: ServerUnaryCall<DeleteUploadInput, UploadList>,
36+
callback: sendUnaryData<UploadList>
37+
) => {
38+
// not implemented
39+
};
40+
41+
42+
update: handleUnaryCall<UpdateUploadInput, UpdateResult> = (
43+
call: ServerUnaryCall<UpdateUploadInput, UpdateResult>,
44+
callback: sendUnaryData<UpdateResult>
45+
) => {
46+
LegacyUploadDomain.update(call.request)
47+
.then((response) => callback(null, response))
48+
.catch((err) => callback(err, null));
49+
};
50+
}
51+
52+
export { LegacyUploadServerImpl as LegacyUploadServer, LegacyUploadService };

0 commit comments

Comments
 (0)