Skip to content

Commit

Permalink
Added Requirement.createdBy property
Browse files Browse the repository at this point in the history
  • Loading branch information
mlhaufe committed Nov 5, 2024
1 parent b349e47 commit 461b080
Show file tree
Hide file tree
Showing 26 changed files with 102 additions and 8 deletions.
11 changes: 8 additions & 3 deletions domain/requirements/Requirement.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ export abstract class Requirement extends BaseEntity {
this.lastModified = props.lastModified;
this.modifiedBy = props.modifiedBy;
this.isSilence = props.isSilence;
this.createdBy = props.createdBy;
}

// This fixes the issue with em.create not honoring the constructor signature
Expand Down Expand Up @@ -73,11 +74,15 @@ export abstract class Requirement extends BaseEntity {
/**
* The user who last modified the requirement
*/
// System Admin is the default user for the initial migration
// This can be removed in v0.14.0 or later
@ManyToOne({ entity: () => AppUser, default: 'ac594919-50e3-438a-b9bc-efb8a8654243' })
@ManyToOne({ entity: () => AppUser })
modifiedBy!: AppUser;

/**
* The user who created the requirement
*/
@ManyToOne({ entity: () => AppUser })
createdBy!: AppUser;

/**
* Whether the requirement is a silence requirement.
* (i.e. a requirement that is not included in the solution)
Expand Down
22 changes: 21 additions & 1 deletion migrations/.snapshot-cathedral.json
Original file line number Diff line number Diff line change
Expand Up @@ -274,7 +274,15 @@
"autoincrement": false,
"primary": false,
"nullable": false,
"default": "'ac594919-50e3-438a-b9bc-efb8a8654243'",
"mappedType": "uuid"
},
"created_by_id": {
"name": "created_by_id",
"type": "uuid",
"unsigned": false,
"autoincrement": false,
"primary": false,
"nullable": false,
"mappedType": "uuid"
},
"is_silence": {
Expand Down Expand Up @@ -514,6 +522,18 @@
"referencedTableName": "public.app_user",
"updateRule": "cascade"
},
"requirement_created_by_id_foreign": {
"constraintName": "requirement_created_by_id_foreign",
"columnNames": [
"created_by_id"
],
"localTableName": "public.requirement",
"referencedColumnNames": [
"id"
],
"referencedTableName": "public.app_user",
"updateRule": "cascade"
},
"requirement_primary_actor_id_foreign": {
"constraintName": "requirement_primary_actor_id_foreign",
"columnNames": [
Expand Down
23 changes: 23 additions & 0 deletions migrations/Migration20241105190126.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import { Migration } from '@mikro-orm/migrations';

export class Migration20241105190126 extends Migration {
override async up(): Promise<void> {
this.addSql(`alter table "requirement" add column "created_by_id" uuid not null default '00000000-0000-0000-0000-000000000000';`);
this.addSql(`update "requirement" set "created_by_id" = "modified_by_id";`);
this.addSql(`alter table "requirement" alter column "created_by_id" drop default;`);
this.addSql(`alter table "requirement" alter column "modified_by_id" drop default;`);
this.addSql(`alter table "requirement" alter column "modified_by_id" drop default;`);
this.addSql(`alter table "requirement" alter column "modified_by_id" type uuid using ("modified_by_id"::text::uuid);`);
this.addSql(`alter table "requirement" add constraint "requirement_created_by_id_foreign" foreign key ("created_by_id") references "app_user" ("id") on update cascade;`);
}

override async down(): Promise<void> {
this.addSql(`alter table "requirement" drop constraint "requirement_created_by_id_foreign";`);

this.addSql(`alter table "requirement" drop column "created_by_id";`);

this.addSql(`alter table "requirement" alter column "modified_by_id" drop default;`);
this.addSql(`alter table "requirement" alter column "modified_by_id" type uuid using ("modified_by_id"::text::uuid);`);
this.addSql(`alter table "requirement" alter column "modified_by_id" set default 'ac594919-50e3-438a-b9bc-efb8a8654243';`);
}
}
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@final-hill/cathedral",
"version": "0.18.1",
"version": "0.19.0",
"description": "Requirements management system",
"keywords": [],
"private": true,
Expand Down Expand Up @@ -77,4 +77,4 @@
"vitest": "^2.1.4",
"vue-tsc": "^2.1.8"
}
}
}
1 change: 1 addition & 0 deletions server/api/assumption/index.post.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ export default defineEventHandler(async (event) => {
reqId: await getNextReqId(assumptionReqIdPrefix, em, solution) as Assumption['reqId'],
name,
description,
createdBy: sessionUser,
modifiedBy: sessionUser,
lastModified: new Date(),
isSilence
Expand Down
1 change: 1 addition & 0 deletions server/api/constraint/index.post.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ export default defineEventHandler(async (event) => {
name,
description,
category,
createdBy: sessionUser,
lastModified: new Date(),
modifiedBy: sessionUser,
isSilence
Expand Down
1 change: 1 addition & 0 deletions server/api/effect/index.post.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ export default defineEventHandler(async (event) => {
reqId: await getNextReqId('E.5.', em, solution) as Effect['reqId'],
name,
description,
createdBy: sessionUser,
modifiedBy: sessionUser,
lastModified: new Date(),
isSilence
Expand Down
1 change: 1 addition & 0 deletions server/api/environment-component/index.post.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ export default defineEventHandler(async (event) => {
name,
description,
lastModified: new Date(),
createdBy: sessionUser,
modifiedBy: sessionUser,
isSilence
})
Expand Down
1 change: 1 addition & 0 deletions server/api/epic/index.post.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ export default defineEventHandler(async (event) => {
reqId: await getNextReqId('G.5.', em, solution) as Epic['reqId'],
name,
description,
createdBy: sessionUser,
modifiedBy: sessionUser,
lastModified: new Date(),
priority,
Expand Down
1 change: 1 addition & 0 deletions server/api/functional-behavior/index.post.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ export default defineEventHandler(async (event) => {
description,
priority,
lastModified: new Date(),
createdBy: sessionUser,
modifiedBy: sessionUser,
isSilence
})
Expand Down
1 change: 1 addition & 0 deletions server/api/glossary-term/index.post.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ export default defineEventHandler(async (event) => {
name,
description,
lastModified: new Date(),
createdBy: sessionUser,
modifiedBy: sessionUser,
isSilence
})
Expand Down
1 change: 1 addition & 0 deletions server/api/invariant/index.post.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ export default defineEventHandler(async (event) => {
name,
description,
modifiedBy: sessionUser,
createdBy: sessionUser,
lastModified: new Date(),
isSilence
})
Expand Down
1 change: 1 addition & 0 deletions server/api/justification/index.post.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ export default defineEventHandler(async (event) => {
reqId: undefined, // Should there be a Documentation category (D)?
name,
description,
createdBy: sessionUser,
modifiedBy: sessionUser,
lastModified: new Date(),
isSilence
Expand Down
1 change: 1 addition & 0 deletions server/api/limit/index.post.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ export default defineEventHandler(async (event) => {
name,
description,
modifiedBy: sessionUser,
createdBy: sessionUser,
lastModified: new Date(),
isSilence
})
Expand Down
1 change: 1 addition & 0 deletions server/api/non-functional-behavior/index.post.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ export default defineEventHandler(async (event) => {
priority,
lastModified: new Date(),
modifiedBy: sessionUser,
createdBy: sessionUser,
isSilence
})

Expand Down
1 change: 1 addition & 0 deletions server/api/obstacle/index.post.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ export default defineEventHandler(async (event) => {
name,
description,
modifiedBy: sessionUser,
createdBy: sessionUser,
lastModified: new Date(),
isSilence
})
Expand Down
1 change: 1 addition & 0 deletions server/api/organization/index.post.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ export default defineEventHandler(async (event) => {
description,
slug: slugify(name),
lastModified: new Date(),
createdBy: sessionUser,
modifiedBy: sessionUser,
isSilence: false
})
Expand Down
1 change: 1 addition & 0 deletions server/api/outcome/index.post.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ export default defineEventHandler(async (event) => {
name,
description,
modifiedBy: sessionUser,
createdBy: sessionUser,
lastModified: new Date(),
isSilence
})
Expand Down
Loading

0 comments on commit 461b080

Please sign in to comment.