deletion

package
v1.6.14 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 19, 2026 License: GPL-3.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CancelDeletionRequest

func CancelDeletionRequest(id string) error

func HandleAdminCancelDeletionRequest

func HandleAdminCancelDeletionRequest(w http.ResponseWriter, r *http.Request)

HandleAdminCancelDeletionRequest godoc @Summary Cancel (dismiss) a deletion request without deleting the user @Tags admin-deletion @Produce json @Param id path string true "Deletion request ID" @Security AdminAuth @Success 204 @Failure 404 {object} model.ApiError @Failure 500 {object} model.ApiError @Router /admin/api/deletion-requests/{id} [delete]

func HandleApproveDeletionRequest

func HandleApproveDeletionRequest(w http.ResponseWriter, r *http.Request)

HandleApproveDeletionRequest godoc @Summary Approve a deletion request — permanently deletes the user @Tags admin-deletion @Produce json @Param id path string true "Deletion request ID" @Security AdminAuth @Success 204 @Failure 404 {object} model.ApiError @Failure 500 {object} model.ApiError @Router /admin/api/deletion-requests/{id}/approve [post]

func HandleCancelDeletionRequest

func HandleCancelDeletionRequest(w http.ResponseWriter, r *http.Request)

HandleCancelDeletionRequest godoc @Summary Cancel the current user's pending deletion request @Tags account-deletion @Produce json @Security UserAuth @Success 204 @Failure 401 {object} model.ApiError @Failure 404 {object} model.ApiError @Router /account/api/deletion-request [delete]

func HandleGetDeletionRequest

func HandleGetDeletionRequest(w http.ResponseWriter, r *http.Request)

HandleGetDeletionRequest godoc @Summary Get pending deletion request for current user @Tags account-deletion @Produce json @Security UserAuth @Success 200 {object} DeletionRequestResponse @Failure 401 {object} model.ApiError @Router /account/api/deletion-request [get]

func HandleListDeletionRequests

func HandleListDeletionRequests(w http.ResponseWriter, _ *http.Request)

HandleListDeletionRequests godoc @Summary List all pending deletion requests @Tags admin-deletion @Produce json @Security AdminAuth @Success 200 {array} DeletionRequestResponse @Failure 500 {object} model.ApiError @Router /admin/api/deletion-requests [get]

func HandleRequestDeletion

func HandleRequestDeletion(w http.ResponseWriter, r *http.Request)

HandleRequestDeletion godoc @Summary Request account deletion @Description Submits a deletion request for the authenticated user. If self-service deletion is enabled, the account is deleted immediately. @Tags account-deletion @Accept json @Produce json @Param body body CreateDeletionRequestInput false "Optional deletion reason" @Security UserAuth @Success 200 {object} DeletionRequestResponse @Success 204 "Account deleted immediately (self-service mode)" @Failure 401 {object} model.ApiError @Failure 409 {object} model.ApiError @Failure 500 {object} model.ApiError @Router /account/api/deletion-request [post]

func HardDeleteUser

func HardDeleteUser(userID string) error

HardDeleteUser permanently removes a user and all associated data. Delegates to user.HardDeleteUser which handles the full cascade.

Types

type CreateDeletionRequestInput

type CreateDeletionRequestInput struct {
	Reason string `json:"reason,omitempty"`
}

type DeletionRequest

type DeletionRequest struct {
	ID          string
	UserID      string
	Reason      sql.NullString
	RequestedAt time.Time
}

func CreateDeletionRequest

func CreateDeletionRequest(userID string, reason *string) (*DeletionRequest, error)

func DeletionRequestByID

func DeletionRequestByID(id string) (*DeletionRequest, error)

func DeletionRequestByUserID

func DeletionRequestByUserID(userID string) (*DeletionRequest, error)

func ListDeletionRequests

func ListDeletionRequests() ([]DeletionRequest, error)

func (*DeletionRequest) ToResponse

func (d *DeletionRequest) ToResponse() DeletionRequestResponse

type DeletionRequestResponse

type DeletionRequestResponse struct {
	ID          string    `json:"id"`
	UserID      string    `json:"user_id"`
	Reason      *string   `json:"reason,omitempty"`
	RequestedAt time.Time `json:"requested_at"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL