MCPcopy Index your code
hub / github.com/bytebase/bytebase / RemoveWebhook

Method RemoveWebhook

backend/api/v1/project_service.go:899–943  ·  view source on GitHub ↗

RemoveWebhook removes a webhook from a given project.

(ctx context.Context, req *connect.Request[v1pb.RemoveWebhookRequest])

Source from the content-addressed store, hash-verified

897
898// RemoveWebhook removes a webhook from a given project.
899func (s *ProjectService) RemoveWebhook(ctx context.Context, req *connect.Request[v1pb.RemoveWebhookRequest]) (*connect.Response[v1pb.Project], error) {
900 projectID, webhookID, err := common.GetProjectIDWebhookID(req.Msg.Webhook.Name)
901 if err != nil {
902 return nil, connect.NewError(connect.CodeInvalidArgument, err)
903 }
904
905 workspaceID := common.GetWorkspaceIDFromContext(ctx)
906 project, err := s.store.GetProject(ctx, &store.FindProjectMessage{
907 Workspace: workspaceID,
908 ResourceID: &projectID,
909 })
910 if err != nil {
911 return nil, connect.NewError(connect.CodeInternal, err)
912 }
913 if project == nil {
914 return nil, connect.NewError(connect.CodeNotFound, errors.Errorf("project %q not found", webhookID))
915 }
916 if project.Deleted {
917 return nil, connect.NewError(connect.CodeNotFound, errors.Errorf("project %q has been deleted", projectID))
918 }
919
920 webhook, err := s.store.GetProjectWebhook(ctx, &store.FindProjectWebhookMessage{
921 ProjectID: &project.ResourceID,
922 ResourceID: &webhookID,
923 })
924 if err != nil {
925 return nil, connect.NewError(connect.CodeInternal, err)
926 }
927 if webhook == nil {
928 return nil, connect.NewError(connect.CodeNotFound, errors.Errorf("webhook %q not found", req.Msg.Webhook.Url))
929 }
930
931 if err := s.store.DeleteProjectWebhook(ctx, project.ResourceID, webhook.ResourceID); err != nil {
932 return nil, connect.NewError(connect.CodeInternal, err)
933 }
934
935 project, err = s.store.GetProject(ctx, &store.FindProjectMessage{
936 Workspace: workspaceID,
937 ResourceID: &projectID,
938 })
939 if err != nil {
940 return nil, connect.NewError(connect.CodeInternal, err)
941 }
942 return connect.NewResponse(convertToProject(project)), nil
943}
944
945// TestWebhook tests a webhook.
946func (s *ProjectService) TestWebhook(ctx context.Context, req *connect.Request[v1pb.TestWebhookRequest]) (*connect.Response[v1pb.TestWebhookResponse], error) {

Callers

nothing calls this directly

Calls 7

GetProjectIDWebhookIDFunction · 0.92
convertToProjectFunction · 0.85
ErrorfMethod · 0.80
GetProjectWebhookMethod · 0.80
DeleteProjectWebhookMethod · 0.80
GetProjectMethod · 0.65

Tested by

no test coverage detected