deletion

package
v1.6.0 Latest Latest
Warning

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

Go to latest
Published: Apr 2, 2026 License: GPL-3.0 Imports: 12 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 @Produce json @Param id path string true "Deletion request ID" @Security BearerAuth @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 @Produce json @Param id path string true "Deletion request ID" @Security BearerAuth @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 @Produce json @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 @Produce json @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 @Produce json @Security BearerAuth @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 @Accept json @Produce json @Param body body CreateDeletionRequestInput false "Optional deletion reason" @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. Tables with ON DELETE CASCADE (passkey_challenges, passkey_credentials) are handled automatically. All others are deleted explicitly before removing the user row.

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