Skip to content

Commit 9e537bc

Browse files
feat(app,api): add line number start option (#624)
* feat(app,api): add line number start option * chore: cleanup * Create slimy-dolphins-add.md * test(api): add integration test * lint: fix lint * lint: fix lint
1 parent 8b49087 commit 9e537bc

File tree

23 files changed

+1706
-155
lines changed

23 files changed

+1706
-155
lines changed

.changeset/slimy-dolphins-add.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
"@codeimage/api": minor
3+
"@codeimage/app": minor
4+
---
5+
6+
feat(app,api): add line number start option
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
-- AlterTable
2+
ALTER TABLE "SnippetEditorTab" ADD COLUMN "lineNumberStart" INTEGER NOT NULL DEFAULT 1;

apps/api/prisma/schema.prisma

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,8 @@ model SnippetEditorTab {
8282
languageId String
8383
tabName String @default("")
8484
85+
lineNumberStart Int @default(1)
86+
8587
@@unique([id, projectId])
8688
}
8789

apps/api/src/modules/project/domain/projectUpdateRequest.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,15 @@ interface EditorUpdateRequest {
1313
code: NonNullable<SnippetEditorTab['code']>;
1414
languageId: NonNullable<SnippetEditorTab['languageId']>;
1515
tabName: NonNullable<SnippetEditorTab['tabName']>;
16+
lineNumberStart: NonNullable<SnippetEditorTab['lineNumberStart']>;
1617
}
1718

1819
interface EditorTabResponse {
1920
id: NonNullable<SnippetEditorTab['id']>;
2021
code: NonNullable<SnippetEditorTab['code']>;
2122
languageId: NonNullable<SnippetEditorTab['languageId']>;
2223
tabName: NonNullable<SnippetEditorTab['tabName']>;
24+
lineNumberStart: NonNullable<SnippetEditorTab['lineNumberStart']>;
2325
}
2426

2527
export interface ProjectUpdateRequest {

apps/api/src/modules/project/infra/prisma/prisma-project.repository.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,20 +138,22 @@ export function makePrismaProjectRepository(
138138
},
139139
},
140140
upsert: data.editors.map(editor => {
141-
const {languageId, code, tabName} = editor;
141+
const {languageId, code, tabName, lineNumberStart, id} = editor;
142142
return {
143143
where: {
144-
id: editor.id,
144+
id,
145145
},
146146
create: {
147147
code,
148148
tabName,
149149
languageId,
150+
lineNumberStart,
150151
},
151152
update: {
152153
code,
153154
tabName,
154155
languageId,
156+
lineNumberStart,
155157
},
156158
};
157159
}),

apps/api/src/modules/project/mapper/create-project-mapper.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ export function createProjectRequestMapper(
6262
languageId: editor.languageId,
6363
code: editor.code,
6464
tabName: editor.tabName,
65+
lineNumberStart: editor.lineNumberStart,
6566
})),
6667
};
6768
}

apps/api/src/modules/project/mapper/get-project-by-id-mapper.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ export function createCompleteProjectGetByIdResponseMapper(
4545
languageId: editor.languageId,
4646
code: editor.code,
4747
tabName: editor.tabName,
48+
lineNumberStart: editor.lineNumberStart,
4849
})),
4950
isOwner: false,
5051
};

apps/api/src/modules/project/schema/project-create.schema.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ export const SnippetEditorTabsCreateRequestSchema = Type.Array(
2626
code: Type.String(),
2727
languageId: Type.String(),
2828
tabName: Type.String(),
29+
lineNumberStart: Type.Integer({minimum: 1, maximum: 999_999}),
2930
},
3031
{title: 'SnippetEditorTabCreateRequest'},
3132
),

apps/api/src/modules/project/schema/project-update.schema.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ export const SnippetEditorTabsUpdateRequestSchema = Type.Array(
2121
code: Type.String(),
2222
languageId: Type.String(),
2323
tabName: Type.String(),
24+
lineNumberStart: Type.Integer({minimum: 1, maximum: 999_999}),
2425
},
2526
{title: 'SnippetEditorTabUpdateRequest'},
2627
),

apps/api/src/modules/project/schema/project.schema.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ export const BaseSnippetEditorTabsSchema = Type.Array(
2121
code: Type.String(),
2222
languageId: Type.String(),
2323
tabName: Type.String(),
24+
lineNumberStart: Type.Integer({minimum: 1, maximum: 999_999}),
2425
}),
2526
);
2627

0 commit comments

Comments
 (0)