Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

270 feature add description field to forminstance and formtemplate #292

Open
wants to merge 13 commits into
base: main
Choose a base branch
from
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
-- AlterTable
ALTER TABLE "FormInstance" ADD COLUMN "description" TEXT;

-- AlterTable
ALTER TABLE "FormTemplate" ADD COLUMN "description" TEXT;
2 changes: 2 additions & 0 deletions apps/server/prisma/schema.prisma
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ model FormTemplate {
formDocLink String @db.VarChar(255)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
description String? @db.Text()

fieldGroups FieldGroup[]
formInstances FormInstance[]
Expand Down Expand Up @@ -144,6 +145,7 @@ model FormInstance {
markedCompleted Boolean @default(false)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
description String? @db.Text()
completedAt DateTime?
markedCompletedAt DateTime?

Expand Down
16 changes: 16 additions & 0 deletions apps/server/prisma/seed.ts
Original file line number Diff line number Diff line change
Expand Up @@ -162,10 +162,12 @@ const formTemplates: FormTemplateData[] = [
],
},
],
description: 'IT exit form description',
},
{
id: STAFFING_REQUISITION_UUID,
name: 'Staffing Requisition',
description: 'Staffing Requisition description',
formDocLink: DEV_FORM_DOC_LINK,
fieldGroups: [
{
Expand Down Expand Up @@ -199,6 +201,7 @@ const formTemplates: FormTemplateData[] = [
{
id: NETWORK_ADD_CHANGE_UUID,
name: 'Network Add Change',
description: 'Network Add Change description',
formDocLink: DEV_FORM_DOC_LINK,
fieldGroups: [
{
Expand All @@ -219,6 +222,7 @@ const formTemplates: FormTemplateData[] = [
{
id: MFA_ORACLE_LOGON_REQUEST_UUID,
name: 'MFA Oracle Logon Request',
description: 'MFA Oracle Logon Request description',
formDocLink: DEV_FORM_DOC_LINK,
fieldGroups: [
{
Expand Down Expand Up @@ -252,6 +256,7 @@ const formTemplates: FormTemplateData[] = [
{
id: HYBRID_AND_REMOTE_WORK_AGREEMENT_UUID,
name: 'Hybrid and Remote Work Agreement',
description: 'Hybrid and Remote Work Agreement description',
formDocLink: DEV_FORM_DOC_LINK,
fieldGroups: [
{
Expand All @@ -272,6 +277,7 @@ const formTemplates: FormTemplateData[] = [
{
id: VPN_REQUEST_UUID,
name: 'VPN Request',
description: 'VPN Request description',
formDocLink: DEV_FORM_DOC_LINK,
fieldGroups: [
{
Expand All @@ -292,6 +298,7 @@ const formTemplates: FormTemplateData[] = [
{
id: DIGITAL_MFA_ID_BADGE_REQUEST_UUID,
name: 'Digital MFA ID Badge Request',
description: 'Digital MFA ID Badge Request description',
formDocLink: DEV_FORM_DOC_LINK,
fieldGroups: [
{
Expand All @@ -312,6 +319,7 @@ const formTemplates: FormTemplateData[] = [
{
id: TRAVEL_AUTHORIZATION_UUID,
name: 'Travel Authorization',
description: 'Travel Authorization description',
formDocLink: DEV_FORM_DOC_LINK,
fieldGroups: [
{
Expand All @@ -335,6 +343,7 @@ const formInstances: FormInstanceData[] = [
{
id: uuidv4(),
name: 'IT Exit Form Instance',
description: 'IT Exit Form Instance description',
formDocLink: DEV_FORM_DOC_LINK,
originatorId: KAI_ZHENG_UUID,
formTemplateId: IT_EXIT_FORM_UUID,
Expand Down Expand Up @@ -363,6 +372,7 @@ const formInstances: FormInstanceData[] = [
{
id: uuidv4(),
name: 'Staffing Requisition Form Instance',
description: 'Staffing Requisition Form Instance description',
formDocLink: DEV_FORM_DOC_LINK,
originatorId: IRIS_ZHANG_UUID,
formTemplateId: STAFFING_REQUISITION_UUID,
Expand Down Expand Up @@ -391,6 +401,7 @@ const formInstances: FormInstanceData[] = [
{
id: uuidv4(),
name: 'Network Add Change Form Instance',
description: 'Network Add Change Form Instance description',
formDocLink: DEV_FORM_DOC_LINK,
originatorId: ANSHUL_SHIRUDE_UUID,
formTemplateId: NETWORK_ADD_CHANGE_UUID,
Expand All @@ -407,6 +418,7 @@ const formInstances: FormInstanceData[] = [
{
id: uuidv4(),
name: 'MFA Oracle Logon Request Form Instance',
description: 'MFA Oracle Logon Request Form Instance description',
formDocLink: DEV_FORM_DOC_LINK,
originatorId: ANGELA_WEIGL_UUID,
formTemplateId: MFA_ORACLE_LOGON_REQUEST_UUID,
Expand All @@ -430,6 +442,7 @@ const formInstances: FormInstanceData[] = [
{
id: uuidv4(),
name: 'Hybrid and Remote Work Agreement Form Instance',
description: 'Hybrid and Remote Work Agreement Form Instance description',
formDocLink: DEV_FORM_DOC_LINK,
originatorId: ANSHUL_SHIRUDE_UUID,
formTemplateId: HYBRID_AND_REMOTE_WORK_AGREEMENT_UUID,
Expand All @@ -446,6 +459,7 @@ const formInstances: FormInstanceData[] = [
{
id: uuidv4(),
name: 'VPN Request Form Instance',
description: 'VPN Request Form Instance description',
formDocLink: DEV_FORM_DOC_LINK,
originatorId: IRIS_ZHANG_UUID,
formTemplateId: VPN_REQUEST_UUID,
Expand All @@ -462,6 +476,7 @@ const formInstances: FormInstanceData[] = [
{
id: uuidv4(),
name: 'Digital MFA ID Badge Request Form Instance',
description: 'Digital MFA ID Badge Request Form Instance description',
formDocLink: DEV_FORM_DOC_LINK,
originatorId: KAI_ZHENG_UUID,
formTemplateId: DIGITAL_MFA_ID_BADGE_REQUEST_UUID,
Expand All @@ -478,6 +493,7 @@ const formInstances: FormInstanceData[] = [
{
id: uuidv4(),
name: 'Travel Authorization Form Instance',
description: 'Travel Authorization Form Instance description',
formDocLink: DEV_FORM_DOC_LINK,
originatorId: ANGELA_WEIGL_UUID,
formTemplateId: TRAVEL_AUTHORIZATION_UUID,
Expand Down
2 changes: 2 additions & 0 deletions apps/server/prisma/seed.types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ export type FormTemplateData = {
name: string;
formDocLink: string;
fieldGroups: FieldGroupData[];
description?: string;
};

export type AssignedGroupData = {
Expand All @@ -65,4 +66,5 @@ export type FormInstanceData = {
originatorId: string;
formTemplateId: string;
assignedGroups: AssignedGroupData[];
description?: string;
};
4 changes: 3 additions & 1 deletion apps/server/prisma/seeder.ts
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ export class Seeder {
}

private async upsertFormTemplate(data: FormTemplateData) {
const { id, name, formDocLink, fieldGroups } = data;
const { id, name, formDocLink, description, fieldGroups } = data;

await this.prisma.formTemplate.upsert({
where: { id },
Expand All @@ -189,6 +189,7 @@ export class Seeder {
id,
name,
formDocLink,
description,
fieldGroups: {
create: fieldGroups.map((fieldGroup) => {
return {
Expand Down Expand Up @@ -236,6 +237,7 @@ export class Seeder {
id: data.id,
name: data.name,
formDocLink: data.formDocLink,
description: data.description,
originatorId: data.originatorId,
formTemplateId: data.formTemplateId,
assignedGroups: {
Expand Down
22 changes: 11 additions & 11 deletions apps/server/src/assigned-group/entities/assigned-group.entity.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
import { ApiProperty } from '@nestjs/swagger';
import { AssignedGroup, SignerType } from '@prisma/client';
import { IsDate, IsOptional, IsString } from 'class-validator';
import { EmployeeBaseEntity } from '../../employees/entities/employee.entity';
Expand All @@ -21,7 +21,7 @@ export class AssignedGroupBaseEntity implements AssignedGroup {

@IsString()
@IsOptional()
@ApiPropertyOptional()
@ApiProperty()
signedDocLink: string | null;

@IsDate()
Expand All @@ -34,22 +34,22 @@ export class AssignedGroupBaseEntity implements AssignedGroup {

@IsString()
@IsOptional()
@ApiPropertyOptional()
@ApiProperty()
signerPositionId: string | null;

@IsString()
@IsOptional()
@ApiPropertyOptional()
@ApiProperty()
signerDepartmentId: string | null;

@IsString()
@IsOptional()
@ApiPropertyOptional()
@ApiProperty()
signerEmployeeId: string | null;

@IsString()
@IsOptional()
@ApiPropertyOptional()
@ApiProperty()
signingEmployeeId: string | null;

@ApiProperty({ enum: SignerType })
Expand All @@ -69,23 +69,23 @@ export class AssignedGroupEntity extends AssignedGroupBaseEntity {
fieldGroup: FieldGroupBaseEntity;

@IsOptional()
@ApiPropertyOptional()
@ApiProperty()
signingEmployee: EmployeeBaseEntity | null;

@IsOptional()
@ApiPropertyOptional()
@ApiProperty()
signerPosition: PositionBaseEntity | null;

@IsOptional()
@ApiPropertyOptional()
@ApiProperty()
signerDepartment: DepartmentEntity | null;

@IsOptional()
@ApiPropertyOptional()
@ApiProperty()
signerEmployee: EmployeeBaseEntity | null;

@IsOptional()
@ApiPropertyOptional({
@ApiProperty({
type: EmployeeBaseEntity,
isArray: true,
})
Expand Down
13 changes: 12 additions & 1 deletion apps/server/src/form-instances/dto/create-form-instance.dto.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
import { ApiProperty } from '@nestjs/swagger';
import { ArrayMinSize, IsArray, IsNotEmpty, IsString } from 'class-validator';
import {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: space?

ArrayMinSize,
IsArray,
IsNotEmpty,
IsOptional,
IsString,
} from 'class-validator';
import { CreateAssignedGroupDto } from '../../assigned-group/dto/create-assigned-group.dto';

export class CreateFormInstanceDto {
Expand All @@ -8,6 +14,11 @@ export class CreateFormInstanceDto {
@ApiProperty()
name: string;

@IsString()
@ApiProperty()
@IsOptional()
description: string;

@IsArray()
@ArrayMinSize(1)
@ApiProperty({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { FormTemplateBaseEntity } from '../../form-templates/entities/form-templ
import { Exclude } from 'class-transformer';
import { EmployeeEntity } from '../../employees/entities/employee.entity';
import { AssignedGroupEntity } from '../../assigned-group/entities/assigned-group.entity';
import { IsOptional } from 'class-validator';

export class FormInstanceBaseEntity implements FormInstance {
@ApiProperty()
Expand All @@ -12,6 +13,10 @@ export class FormInstanceBaseEntity implements FormInstance {
@ApiProperty()
name: string;

@IsOptional()
@ApiProperty()
description: string | null;

@Exclude()
formDocLink: string;

Expand Down Expand Up @@ -60,6 +65,9 @@ export class FormInstanceEntity implements FormInstance {
@ApiProperty()
name: string;

@ApiProperty()
description: string | null;

@ApiProperty()
formDocLink: string;

Expand Down
11 changes: 11 additions & 0 deletions apps/server/src/form-instances/form-instances.service.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ const formTemplate = {
id: formTemplateId,
name: 'Form-Template-1',
formDocLink: 'mfa.org/form1',
description: 'description',
signatureFields: [
{
id: '086885ca-ecc8-4614-8103-9a99fa0bdf6d',
Expand Down Expand Up @@ -132,6 +133,7 @@ const formInstancesArray = [
{
id: formInstance1Id,
name: formInstance1Name,
description: 'forminstance1 description',
formDocLink: '',
completed: false,
createdAt: new Date(1672531200),
Expand Down Expand Up @@ -172,6 +174,7 @@ const formInstancesArray = [
{
id: formInstance2Id,
name: formInstance2Name,
description: 'forminstance2 description',
formDocLink: '',
completed: false,
createdAt: new Date(1672531200),
Expand Down Expand Up @@ -199,6 +202,7 @@ const formInstancesArray = [
{
id: formInstance3Id,
name: formInstance3Name,
description: 'forminstance3 description',
formDocLink: '',
completed: false,
createdAt: new Date(1672531200),
Expand Down Expand Up @@ -325,6 +329,7 @@ describe('FormInstancesService', () => {
originatorId: 'originator-id',
formTemplateId: 'form-template-id',
formDocLink: 'form-doc-link',
description: 'description',
};

jest
Expand Down Expand Up @@ -357,6 +362,7 @@ describe('FormInstancesService', () => {
originatorId: 'originator-id',
formTemplateId: 'form-template-id',
formDocLink: 'form-doc-link',
description: 'description',
};

jest
Expand All @@ -382,6 +388,7 @@ describe('FormInstancesService', () => {
originatorId: 'originator-id',
formTemplateId: 'form-template-id',
formDocLink: 'form-doc-link',
description: 'description',
};

expect(service.create(createFormInstanceDto)).rejects.toThrowError(
Expand All @@ -408,6 +415,7 @@ describe('FormInstancesService', () => {
originatorId: 'originator-id',
formTemplateId: 'form-template-id',
formDocLink: 'form-doc-link',
description: 'description',
};

jest
Expand Down Expand Up @@ -438,6 +446,7 @@ describe('FormInstancesService', () => {
originatorId: 'originator-id',
formTemplateId: 'form-template-id',
formDocLink: 'form-doc-link',
description: 'description',
};

jest
Expand Down Expand Up @@ -468,6 +477,7 @@ describe('FormInstancesService', () => {
originatorId: 'originator-id',
formTemplateId: 'form-template-id',
formDocLink: 'form-doc-link',
description: 'description',
};

jest
Expand Down Expand Up @@ -498,6 +508,7 @@ describe('FormInstancesService', () => {
originatorId: 'originator-id',
formTemplateId: 'form-template-id',
formDocLink: 'form-doc-link',
description: 'description',
};

jest
Expand Down
Loading