feat: Add workspace delete feature (#896)

* Add workspace delete feature

Co-authored-by: v1b3m <vibenjamin6@gmail.com>

* Add fixes and refactors

Co-authored-by: v1b3m <vibenjamin6@gmail.com>

* Add more fixes

Co-authored-by: v1b3m <vibenjamin6@gmail.com>

* Add requested changes

Co-authored-by: v1b3m <vibenjamin6@gmail.com>

* Add workspace delete mutation

Co-authored-by: v1b3m <vibenjamin6@gmail.com>

* Complete v1 of deletion

Co-authored-by: Benjamin Mayanja <vibenjamin6@gmail.com>

* Revert unwanted changes

Co-authored-by: Benjamin Mayanja <vibenjamin6@gmail.com>
Co-authored-by: RubensRafael <rubensrafael2@live.com>

* Update debouce import

Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: RubensRafael <rubensrafael2@live.com>

* Fix server e2e tests on CI #3

* Fix server e2e tests on CI #4

* Fix server e2e tests on CI #5

* Added generic relation cell (#969)

* Added generic relation cell

* Deactivated debug

* Added default warning

* Put back display component

* Removed unused types

* fix: 906 edit avatar style (#923)

* fix: 906 edit avatar style

* fix: 906 add avatar size enum and mapping for font and height

* fix: 906 remove unused vars

* chore: optimize size of front docker image (#965)

* Enable to drag under New button on pipeline (#970)

* Add minor fix

Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: RubensRafael <rubensrafael2@live.com>

---------

Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: RubensRafael <rubensrafael2@live.com>
Co-authored-by: Charles Bochet <charles@twenty.com>
Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
Co-authored-by: 310387 <139059022+310387@users.noreply.github.com>
Co-authored-by: Lucas Vieira <vieiralucas4@gmail.com>
Co-authored-by: Charles Bochet <charlesBochet@users.noreply.github.com>
This commit is contained in:
gitstart-twenty
2023-07-28 12:19:20 +07:00
committed by GitHub
parent 8cf8183342
commit fcdde024a3
9 changed files with 303 additions and 18 deletions

View File

@ -20,7 +20,12 @@ import { FileUploadService } from 'src/core/file/services/file-upload.service';
import { streamToBuffer } from 'src/utils/stream-to-buffer';
import { AbilityGuard } from 'src/guards/ability.guard';
import { CheckAbilities } from 'src/decorators/check-abilities.decorator';
import { UpdateWorkspaceAbilityHandler } from 'src/ability/handlers/workspace.ability-handler';
import {
UpdateWorkspaceAbilityHandler,
DeleteWorkspaceAbilityHandler,
} from 'src/ability/handlers/workspace.ability-handler';
import { AuthUser } from 'src/decorators/auth-user.decorator';
import { User } from 'src/core/@generated/user/user.model';
@UseGuards(JwtAuthGuard)
@Resolver(() => Workspace)
@ -95,4 +100,20 @@ export class WorkspaceResolver {
return paths[0];
}
@UseGuards(AbilityGuard)
@CheckAbilities(DeleteWorkspaceAbilityHandler)
@Mutation(() => Workspace)
async deleteCurrentWorkspace(
@AuthWorkspace() { id: workspaceId }: Workspace,
@PrismaSelector({ modelName: 'Workspace' })
{ value: select }: PrismaSelect<'Workspace'>,
@AuthUser() { id: userId }: User,
) {
return this.workspaceService.deleteWorkspace({
workspaceId,
select,
userId,
});
}
}