Skip to content

Commit 7465aa1

Browse files
authored
fix: add challenge completion timestamp (#52)
Signed-off-by: Rakib Ansary <rakibansary@topcoder.com>
1 parent ed3ac1a commit 7465aa1

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

src/util/DateUtil.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
11
import dayjs from "dayjs";
22
import utc from "dayjs/plugin/utc";
3+
34
import timezone from "dayjs/plugin/timezone";
5+
import advanced from "dayjs/plugin/advancedFormat";
46

57
dayjs.extend(utc);
68
dayjs.extend(timezone);
9+
dayjs.extend(advanced);
710

811
export const IFX_TIMEZONE = "America/New_York";
9-
export const dateFormatIfx = "YYYY-MM-DD HH:mm:ss";
12+
export const IFX_DATE_FORMAT = "YYYY-MM-DD HH:mm:ss";
1013

1114
class DateUtil {
12-
public formatDateForIfx(date: string): string | undefined {
15+
public formatDateForIfx(date: string, format: string = IFX_DATE_FORMAT): string | undefined {
1316
const parsedDate = dayjs(date);
14-
return parsedDate.isValid()
15-
? parsedDate.tz(IFX_TIMEZONE).format(dateFormatIfx)
16-
: undefined;
17+
return parsedDate.isValid() ? parsedDate.tz(IFX_TIMEZONE).format(format) : undefined;
1718
}
1819

1920
public isValidDate(date: string) {

src/util/LegacyMapper.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import {
2323
} from "@topcoder-framework/domain-acl";
2424
import { getRequest } from "../api/v5Api";
2525
import m2mToken from "../helpers/MachineToMachineToken";
26+
import DateUtil from "./DateUtil";
2627

2728
class LegacyMapper {
2829
// To be used on challenge:update calls that change state from New -> Draft
@@ -243,6 +244,9 @@ class LegacyMapper {
243244
if (input.billing?.billingAccountId != null) {
244245
projectInfo[32] = input.billing?.billingAccountId!.toString();
245246
}
247+
if (input.status === ChallengeStatuses.Completed) {
248+
projectInfo[21] = DateUtil.formatDateForIfx(new Date().toISOString(), "MM.DD.YYYY HH:mm z")!; // project_info 21 is Completion Timestamp; and it has a different date format
249+
}
246250

247251
const map = {
248252
...projectInfo,

0 commit comments

Comments
 (0)