Go extract error codes

go-extract-error-codes

Overview

This library helps to extract possible error codes from configured go-restful applications quality level: PoC

High Level Features

  • Extract error codes for HTTP routes and save into a file

Requirements

  • The service should support design-first configuration for error codes in the the form:
packageName: log
types:
  numberOfAttempts: int
defaultType: string
allowedDuplicates:
  - 20000 # needs to be resolved
services:
  11: "lobby"
sections:
  2000: "general"
  2001: "general"
messages:
#global error codes
  InternalServerError:
    code: 20000
    text: "{{message}}"
  InternalServerErrorV1:
    code: 20000
    text: "unable to {{action}}: {{reason}}, userID: {{userID}}, details: {{details}}"
  UnauthorizedAccess:
    code: 20001
    text: "unauthorized access"
  LobbyConnectionUnableToQueryConfig:
    code: 112110
    text: "unable to query lobby config"
  LobbyConnectionUnableToQueryCCU:
    code: 112111
    text: "unable to query lobby CCU"
  LobbyConnectionCCULimitReached:
    code: 112112
    text: "lobby CCU limit reached"
  LobbyConnectionUnableToGetBlockedPlayer:
    code: 112109
    text: "unable to get blocked player from storage"

Usage example

stored in the /example directory

Result example

- method: GET
  receiver: ""
  path: /lobby/healthz
  name: xx/pkg/health.(*Health).HealthCheckHandler
  file: xx/pkg/health/health.go
  line: 182
  appcodes: []
- method: GET
  receiver: ""
  path: /lobby/
  name: xx/pkg/lobby/service.(*Lobby).HandleUserConnection
  file: xx/pkg/lobby/service/service.go
  line: 212
  appcodes:
    - code: 112110
      text: unable to query lobby config
      name: LobbyConnectionUnableToQueryConfig
    - code: 112111
      text: unable to query lobby CCU
      name: LobbyConnectionUnableToQueryCCU
    - code: 112112
      text: lobby CCU limit reached
      name: LobbyConnectionCCULimitReached
    - code: 112109
      text: unable to get blocked player from storage
      name: LobbyConnectionUnableToGetBlockedPlayer
    - code: 112106
      text: '{{message}}'
      name: LobbyConnectionUnableCheckConnectedUser
    - code: 112105
      text: '{{message}}'
      name: LobbyConnectionMultipleLoginAttempt
    - code: 112101
      text: '{{message}}'
      name: LobbyConnectionUnableToUpgrade
- method: POST
  receiver: ""
  path: /notification/namespaces/{namespace}/freeform
  name: xx/pkg/notification/service.(*NotificationService).HandleFreeFormNamespaceNotification
  file: xx/pkg/notification/service/service.go
  line: 104
  appcodes:
    - code: 11401
      text: '{{message}}'
      name: FreeNotificationInvalidRequestBody
    - code: 11403
      text: '{{message}}'
      name: FreeNotificationUnablePublishNotification
Owner
AccelByte Inc
Digital Publishing & Game Platform for You to Own
AccelByte Inc
Similar Resources

Generic error handling with panic, recover, and defer.

Generic error handling with panic, recover, and defer.

Aug 25, 2022

brief: a piece of error handling codelet

brief a piece of error handling codelet. this code only demonstrates how to hide sql.ErrNoRows to the caller. the Get() method defined in the pkg/proj

Oct 30, 2021

Error interface wrappers for Google's errdetails protobuf types, because they're handy as heck and I want to use them more

Error interface wrappers for Google's errdetails protobuf types, because they're handy as heck and I want to use them more

Nov 18, 2021

Just another error handling primitives for golang

errors Just another error handling primitives for golang Install go install github.com/WAY29/errors@latest Usage New error and print error context Th

Feb 19, 2022

ApolloError compliant error function for gqlgen

gqlgen-apollo-error ApolloError compliant error function for gqlgen Installation $ go get -u github.com/s-ichikawa/gqlgen-apollo-error Quickstart Retu

Sep 6, 2022

Golang advanced error usage with stack tracing

UhOh Golang advanced error usage with stack tracing uhoh consists of 3 parts: Original error Description of error Stack trace File Function Line Usage

Mar 30, 2022

🥷 CError (Custom Error Handling)

🥷 CError (Custom Error Handling) Installation Via go packages: go get github.com/rozturac/cerror Usage Here is a sample CError uses: import ( "gi

Sep 21, 2022

Errors - A lib for handling error gracefully in Go

🔧 Errors Errors 是一个用于优雅地处理 Go 中错误的库。 Read me in English 🙋‍ 功能特性 优雅地处理 error,嗯,

Jan 17, 2022

Simple, intuitive and effective error handling for Go

Error Handling with eluv-io/errors-go The package eluv-io/errors-go makes Go error handling simple, intuitive and effective. err := someFunctionThatCa

Jan 19, 2022
Wraps the normal error and provides an error that is easy to use with net/http.

Go HTTP Error Wraps the normal error and provides an error that is easy to use with net/http. Install go get -u github.com/cateiru/go-http-error Usage

Dec 20, 2021
Reduce debugging time while programming Go. Use static and stack-trace analysis to determine which func call causes the error.
Reduce debugging time while programming Go. Use static and stack-trace analysis to determine which func call causes the error.

Errlog: reduce debugging time while programming Introduction Use errlog to improve error logging and speed up debugging while you create amazing code

Nov 18, 2022
Simple error handling primitives

errors Package errors provides simple error handling primitives. go get github.com/pkg/errors The traditional error handling idiom in Go is roughly ak

Dec 26, 2022
A drop-in replacement for Go errors, with some added sugar! Unwrap user-friendly messages, HTTP status code, easy wrapping with multiple error types.
A drop-in replacement for Go errors, with some added sugar! Unwrap user-friendly messages, HTTP status code, easy wrapping with multiple error types.

Errors Errors package is a drop-in replacement of the built-in Go errors package with no external dependencies. It lets you create errors of 11 differ

Dec 6, 2022
A comprehensive error handling library for Go

Highlights The errorx library provides error implementation and error-related utilities. Library features include (but are not limited to): Stack trac

Jan 6, 2023
A Go (golang) package for representing a list of errors as a single error.

go-multierror go-multierror is a package for Go that provides a mechanism for representing a list of error values as a single error. This allows a fun

Jan 1, 2023
Error tracing and annotation.

errors -- import "github.com/juju/errgo" The errors package provides a way to create and diagnose errors. It is compatible with the usual Go error idi

Nov 3, 2022
A flexible error support library for Go

errors Please see http://godoc.org/github.com/spacemonkeygo/errors for info License Copyright (C) 2014 Space Monkey, Inc. Licensed under the Apache Li

Nov 3, 2022
A powerful, custom error package for Go

custom-error-go A powerful, custom error package for Go Detailed explanation: https://medium.com/codealchemist/error-handling-in-go-made-more-powerful

Apr 19, 2022
Declarative error handling for Go.

ErrorFlow Declarative error handling for Go. Motivation Reading list: Don't defer Close() on writable files Error Handling — Problem Overview Proposal

Mar 3, 2022