Skip to content

Commit b0d540e

Browse files
committed
fix: save creator
1 parent 7f22886 commit b0d540e

File tree

3 files changed

+21
-9
lines changed

3 files changed

+21
-9
lines changed

src/common/CoreOperations.ts

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import {
2525
UpdateType,
2626
Value as PartiQLValue,
2727
} from "../dal/models/nosql/parti_ql";
28-
import { StatusBuilder } from "@grpc/grpc-js";
28+
import { Metadata, StatusBuilder } from "@grpc/grpc-js";
2929
import { Status } from "@grpc/grpc-js/build/src/constants";
3030

3131
export type ValueType =
@@ -150,7 +150,12 @@ abstract class CoreOperations<
150150
};
151151
}
152152

153-
protected async create(entity: I & T): Promise<T> {
153+
protected async create(entity: I & T, metadata?: Metadata): Promise<T> {
154+
let handle = null;
155+
if (metadata?.get("handle") != null) {
156+
handle = metadata?.get("handle")?.toString();
157+
}
158+
154159
const queryRequest: QueryRequest = {
155160
kind: {
156161
$case: "query",
@@ -159,7 +164,11 @@ abstract class CoreOperations<
159164
$case: "insert",
160165
insert: {
161166
table: this.entityName,
162-
attributes: entity,
167+
attributes: {
168+
...entity,
169+
createdBy: handle != null ? handle : undefined,
170+
updatedBy: handle != null ? handle : undefined,
171+
},
163172
},
164173
},
165174
},

src/domain/Challenge.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ import { ScanCriteria } from "../models/common/common";
6161
import constants from "../util/constants";
6262
import legacyMapper from "../util/LegacyMapper";
6363
import { CreateResult, Operator } from "@topcoder-framework/lib-common";
64-
import { StatusBuilder } from "@grpc/grpc-js";
64+
import { Metadata, StatusBuilder } from "@grpc/grpc-js";
6565
import { Status } from "@grpc/grpc-js/build/src/constants";
6666
import ChallengeScheduler from "../util/ChallengeScheduler";
6767

@@ -151,7 +151,10 @@ class ChallengeDomain extends CoreOperations<Challenge, CreateChallengeInput> {
151151
return Challenge.fromJSON(item);
152152
}
153153

154-
public async create(input: CreateChallengeInput): Promise<Challenge> {
154+
public async create(
155+
input: CreateChallengeInput,
156+
metadata: Metadata | undefined
157+
): Promise<Challenge> {
155158
input.name = xss(input.name);
156159

157160
if (Array.isArray(input.discussions)) {
@@ -196,7 +199,7 @@ class ChallengeDomain extends CoreOperations<Challenge, CreateChallengeInput> {
196199
// prettier-ignore
197200
const legacyChallengeCreateInput = LegacyCreateChallengeInput.fromPartial(legacyMapper.mapChallengeDraftUpdateInput(input));
198201
// prettier-ignore
199-
const legacyChallengeCreateResponse = await legacyChallengeDomain.create(legacyChallengeCreateInput);
202+
const legacyChallengeCreateResponse = await legacyChallengeDomain.create(legacyChallengeCreateInput, metadata);
200203
if (legacyChallengeCreateResponse.kind?.$case === "integerId") {
201204
legacyChallengeId = legacyChallengeCreateResponse.kind.integerId;
202205
}
@@ -240,7 +243,7 @@ class ChallengeDomain extends CoreOperations<Challenge, CreateChallengeInput> {
240243
}) ?? [],
241244
};
242245

243-
return super.create(challenge);
246+
return super.create(challenge, metadata);
244247
}
245248

246249
async syncChallengePhases(

src/service/ChallengeService.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ class ChallengeServerImpl implements ChallengeServer {
3333
call: ServerUnaryCall<CreateChallengeInput, Challenge>,
3434
callback: sendUnaryData<Challenge>
3535
): Promise<void> => {
36-
const { request: createChallengeInput } = call;
37-
Domain.create(createChallengeInput)
36+
const { request: createChallengeInput, metadata } = call;
37+
Domain.create(createChallengeInput, metadata)
3838
.then((challenge) => callback(null, challenge))
3939
.catch((error) => callback(error, null));
4040
};

0 commit comments

Comments
 (0)