Handle review comments

This commit is contained in:
neeraj 2024-02-01 10:25:05 +05:30
parent 3d36f58599
commit 2d73abc0c2
8 changed files with 46 additions and 56 deletions

View File

@ -205,42 +205,29 @@ export class Database {
const projectMemberRepository = this.dataSource.getRepository(ProjectMember);
const userRepository = this.dataSource.getRepository(User);
const user = await userRepository.findOneBy({
let user = await userRepository.findOneBy({
email: data.email
});
if (user) {
const newProjectMember = await projectMemberRepository.save({
project: {
id: projectId
},
permissions: data.permissions,
isPending: true,
member: {
id: Number(user.id)
}
});
return Boolean(newProjectMember);
} else {
const newUser = await userRepository.save({
if (!user) {
user = await userRepository.save({
email: data.email,
isVerified: false
});
const newProjectMember = await projectMemberRepository.save({
project: {
id: projectId
},
permissions: data.permissions,
isPending: true,
member: {
id: newUser.id
}
});
return Boolean(newProjectMember);
}
const newProjectMember = await projectMemberRepository.save({
project: {
id: projectId
},
permissions: data.permissions,
isPending: true,
member: {
id: user.id
}
});
return Boolean(newProjectMember);
}
async addEnvironmentVariablesByProjectId (projectId: string, environmentVariables: {

View File

@ -30,7 +30,7 @@ export class Deployment {
@PrimaryGeneratedColumn()
id!: number;
@ManyToOne(() => Project, { onDelete: 'CASCADE' })
@ManyToOne(() => Project)
@JoinColumn({ name: 'projectId' })
project!: Project;

View File

@ -24,7 +24,7 @@ export class Domain {
@Column('varchar')
projectId!: string;
@ManyToOne(() => Project, { onDelete: 'CASCADE' })
@ManyToOne(() => Project)
@JoinColumn({ name: 'projectId' })
project!: Project;

View File

@ -21,7 +21,7 @@ export class EnvironmentVariable {
@PrimaryGeneratedColumn()
id!: number;
@ManyToOne(() => Project, { onDelete: 'CASCADE' })
@ManyToOne(() => Project)
@JoinColumn({ name: 'projectId' })
project!: Project;

View File

@ -23,11 +23,15 @@ export class ProjectMember {
@PrimaryGeneratedColumn()
id!: number;
@ManyToOne(() => User, (user) => user.projectMembers, { cascade: true })
@ManyToOne(() => User, (user) => user.projectMembers, {
cascade: ['remove']
})
@JoinColumn({ name: 'userId' })
member!: User;
@ManyToOne(() => Project, (project) => project.projectMembers, { onDelete: 'CASCADE' })
@ManyToOne(() => Project, (project) => project.projectMembers, {
cascade: ['remove']
})
@JoinColumn({ name: 'projectId' })
project!: Project;
@ -36,7 +40,7 @@ export class ProjectMember {
})
permissions!: Permission[];
@Column('boolean')
@Column('boolean', { default: false })
isPending!: boolean;
@CreateDateColumn()

View File

@ -24,7 +24,7 @@ export class User {
@Column('varchar', { nullable: true })
gitHubToken!: string | null;
@Column('boolean')
@Column('boolean', { default: false })
isVerified!: boolean;
@CreateDateColumn()

View File

@ -22,11 +22,15 @@ export class UserOrganization {
@PrimaryGeneratedColumn()
id!: number;
@ManyToOne(() => User, { onDelete: 'CASCADE' })
@ManyToOne(() => User, {
cascade: ['remove']
})
@JoinColumn({ name: 'userId' })
member!: User;
@ManyToOne(() => Organization, { onDelete: 'CASCADE' })
@ManyToOne(() => Organization, {
cascade: ['remove']
})
@JoinColumn({ name: 'organizationId' })
organization!: Organization;

View File

@ -124,7 +124,7 @@ export const createResolvers = async (db: Database, app: OAuthApp): Promise<any>
assert(memberProject);
if (isUserOwner(String(context.userId), String(memberProject.owner.id))) {
return db.removeProjectMemberById(projectMemberId);
return await db.removeProjectMemberById(projectMemberId);
} else {
throw new Error('Invalid operation: not authorized');
}
@ -141,7 +141,7 @@ export const createResolvers = async (db: Database, app: OAuthApp): Promise<any>
}
}) => {
try {
return db.updateProjectMemberById(projectMemberId, data);
return await db.updateProjectMemberById(projectMemberId, data);
} catch (err) {
log(err);
return false;
@ -157,8 +157,7 @@ export const createResolvers = async (db: Database, app: OAuthApp): Promise<any>
}) => {
try {
// TODO: Send invitation
const isAdded = await db.addProjectMember(projectId, data);
return isAdded;
return await db.addProjectMember(projectId, data);
} catch (err) {
log(err);
return false;
@ -167,7 +166,7 @@ export const createResolvers = async (db: Database, app: OAuthApp): Promise<any>
addEnvironmentVariables: async (_: any, { projectId, environmentVariables }: { projectId: string, environmentVariables: { environments: string[], key: string, value: string}[] }) => {
try {
return db.addEnvironmentVariablesByProjectId(projectId, environmentVariables);
return await db.addEnvironmentVariablesByProjectId(projectId, environmentVariables);
} catch (err) {
log(err);
return false;
@ -179,7 +178,7 @@ export const createResolvers = async (db: Database, app: OAuthApp): Promise<any>
value: string
}}) => {
try {
return db.updateEnvironmentVariable(environmentVariableId, environmentVariable);
return await db.updateEnvironmentVariable(environmentVariableId, environmentVariable);
} catch (err) {
log(err);
return false;
@ -188,7 +187,7 @@ export const createResolvers = async (db: Database, app: OAuthApp): Promise<any>
removeEnvironmentVariable: async (_: any, { environmentVariableId }: { environmentVariableId: string}) => {
try {
return db.deleteEnvironmentVariable(environmentVariableId);
return await db.deleteEnvironmentVariable(environmentVariableId);
} catch (err) {
log(err);
return false;
@ -197,7 +196,7 @@ export const createResolvers = async (db: Database, app: OAuthApp): Promise<any>
updateDeploymentToProd: async (_: any, { deploymentId }: { deploymentId: string }) => {
try {
return db.updateDeploymentById(deploymentId, {
return await db.updateDeploymentById(deploymentId, {
environment: Environment.Production
});
} catch (err) {
@ -217,8 +216,7 @@ export const createResolvers = async (db: Database, app: OAuthApp): Promise<any>
redeployToProd: async (_: any, { deploymentId }: { deploymentId: string }, context: any) => {
try {
await db.redeployToProdById(context.userId, deploymentId);
return true;
return await db.redeployToProdById(context.userId, deploymentId);
} catch (err) {
log(err);
return false;
@ -227,7 +225,7 @@ export const createResolvers = async (db: Database, app: OAuthApp): Promise<any>
deleteProject: async (_: any, { projectId }: { projectId: string }) => {
try {
return db.deleteProjectById(projectId);
return await db.deleteProjectById(projectId);
} catch (err) {
log(err);
return false;
@ -236,8 +234,7 @@ export const createResolvers = async (db: Database, app: OAuthApp): Promise<any>
deleteDomain: async (_: any, { domainId }: { domainId: string }) => {
try {
await db.deleteDomainById(domainId);
return true;
return await db.deleteDomainById(domainId);
} catch (err) {
log(err);
return false;
@ -246,7 +243,7 @@ export const createResolvers = async (db: Database, app: OAuthApp): Promise<any>
rollbackDeployment: async (_: any, { projectId, deploymentId }: {deploymentId: string, projectId: string }) => {
try {
return db.rollbackDeploymentById(projectId, deploymentId);
return await db.rollbackDeploymentById(projectId, deploymentId);
} catch (err) {
log(err);
return false;
@ -255,8 +252,7 @@ export const createResolvers = async (db: Database, app: OAuthApp): Promise<any>
addDomain: async (_: any, { projectId, domainDetails }: { projectId: string, domainDetails: { name: string } }) => {
try {
await db.addDomainByProjectId(projectId, domainDetails);
return true;
return await db.addDomainByProjectId(projectId, domainDetails);
} catch (err) {
log(err);
return false;
@ -265,8 +261,7 @@ export const createResolvers = async (db: Database, app: OAuthApp): Promise<any>
updateDomain: async (_: any, { domainId, domainDetails }: { domainId: string, domainDetails: DeepPartial<Domain>}) => {
try {
await db.updateDomainById(domainId, domainDetails);
return true;
return await db.updateDomainById(domainId, domainDetails);
} catch (err) {
log(err);
return false;