From 716a125cade70a8844e13d4db30b0d7782cda8f4 Mon Sep 17 00:00:00 2001 From: Anton Kosyakov Date: Tue, 18 Feb 2025 17:22:56 +0100 Subject: [PATCH] feat(shared): add standard error codes for API errors (#45) --- go.mod | 8 +++++--- go.sum | 2 -- internal/apierror/error.go | 22 ++++++++++++++++++++++ shared/error.go | 22 ++++++++++++++++++++++ 4 files changed, 49 insertions(+), 5 deletions(-) create mode 100644 internal/apierror/error.go create mode 100644 shared/error.go diff --git a/go.mod b/go.mod index b6a18c3..f776218 100644 --- a/go.mod +++ b/go.mod @@ -3,9 +3,11 @@ module github.com/gitpod-io/gitpod-sdk-go go 1.21 require ( - github.com/google/uuid v1.3.0 // indirect - github.com/tidwall/gjson v1.14.4 // indirect + github.com/tidwall/gjson v1.14.4 + github.com/tidwall/sjson v1.2.5 +) + +require ( github.com/tidwall/match v1.1.1 // indirect github.com/tidwall/pretty v1.2.1 // indirect - github.com/tidwall/sjson v1.2.5 // indirect ) diff --git a/go.sum b/go.sum index 569e555..a70a5e0 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,3 @@ -github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= -github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/tidwall/gjson v1.14.2/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/gjson v1.14.4 h1:uo0p8EbA09J7RQaflQ1aBRffTR7xedD2bcIVSYxLnkM= github.com/tidwall/gjson v1.14.4/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= diff --git a/internal/apierror/error.go b/internal/apierror/error.go new file mode 100644 index 0000000..cac011e --- /dev/null +++ b/internal/apierror/error.go @@ -0,0 +1,22 @@ +package apierror + +import "github.com/gitpod-io/gitpod-sdk-go/shared" + +type ErrorCode = shared.ErrorCode + +const ErrorCodeCanceled = shared.ErrorCodeCanceled +const ErrorCodeUnknown = shared.ErrorCodeUnknown +const ErrorCodeInvalidArgument = shared.ErrorCodeInvalidArgument +const ErrorCodeDeadlineExceeded = shared.ErrorCodeDeadlineExceeded +const ErrorCodeNotFound = shared.ErrorCodeNotFound +const ErrorCodeAlreadyExists = shared.ErrorCodeAlreadyExists +const ErrorCodePermissionDenied = shared.ErrorCodePermissionDenied +const ErrorCodeResourceExhausted = shared.ErrorCodeResourceExhausted +const ErrorCodeFailedPrecondition = shared.ErrorCodeFailedPrecondition +const ErrorCodeAborted = shared.ErrorCodeAborted +const ErrorCodeOutOfRange = shared.ErrorCodeOutOfRange +const ErrorCodeUnimplemented = shared.ErrorCodeUnimplemented +const ErrorCodeInternal = shared.ErrorCodeInternal +const ErrorCodeUnavailable = shared.ErrorCodeUnavailable +const ErrorCodeDataLoss = shared.ErrorCodeDataLoss +const ErrorCodeUnauthenticated = shared.ErrorCodeUnauthenticated diff --git a/shared/error.go b/shared/error.go new file mode 100644 index 0000000..8edf8c9 --- /dev/null +++ b/shared/error.go @@ -0,0 +1,22 @@ +package shared + +type ErrorCode string + +const ( + ErrorCodeCanceled ErrorCode = "canceled" + ErrorCodeUnknown ErrorCode = "unknown" + ErrorCodeInvalidArgument ErrorCode = "invalid_argument" + ErrorCodeDeadlineExceeded ErrorCode = "deadline_exceeded" + ErrorCodeNotFound ErrorCode = "not_found" + ErrorCodeAlreadyExists ErrorCode = "already_exists" + ErrorCodePermissionDenied ErrorCode = "permission_denied" + ErrorCodeResourceExhausted ErrorCode = "resource_exhausted" + ErrorCodeFailedPrecondition ErrorCode = "failed_precondition" + ErrorCodeAborted ErrorCode = "aborted" + ErrorCodeOutOfRange ErrorCode = "out_of_range" + ErrorCodeUnimplemented ErrorCode = "unimplemented" + ErrorCodeInternal ErrorCode = "internal" + ErrorCodeUnavailable ErrorCode = "unavailable" + ErrorCodeDataLoss ErrorCode = "data_loss" + ErrorCodeUnauthenticated ErrorCode = "unauthenticated" +)