errors.go raw
1 package errors
2
3 import (
4 "errors"
5 "fmt"
6 )
7
8 var (
9 errValidation = errors.New("Missing required parameters")
10 errService = errors.New("service configuration failed")
11 errResponseTarget = errors.New("Unexpected response type received")
12 errResponse = errors.New("Server error Response")
13 errProcess = errors.New("Error while")
14 errTypeMismatch = errors.New("Type mismatch error")
15 errInvalid = errors.New("Invalid input error")
16 errNotFound = errors.New("Resource not found")
17 errMultipleData = errors.New("Returned resources list instead single resource")
18 )
19
20 func ValidationError(key string) error {
21 return fmt.Errorf("%w: [%s ]", errValidation, key)
22 }
23
24 func ServiceError(service string) error {
25 return fmt.Errorf("%s %w", service, errService)
26 }
27
28 func ServiceConfigError(service string, err error) error {
29 return fmt.Errorf("%s %w: %w", service, errService, err)
30 }
31
32 func ResponseTargetError(key string) error {
33 return fmt.Errorf("%w: '%s'", errResponseTarget, key)
34 }
35
36 func APIResponseError(err string) error {
37 return fmt.Errorf("%w - %s", errResponse, err)
38 }
39
40 func processError(service, process, id string, err error) error {
41 return fmt.Errorf("%w %s %s: %w: {key: '%s'}", errProcess, process, service, err, id)
42 }
43
44 func CreateError(service, id string, err error) error {
45 return processError(service, "creating", id, err)
46 }
47
48 func UpdateError(service, id string, err error) error {
49 return processError(service, "updating", id, err)
50 }
51
52 func PartialUpdateError(service, id string, err error) error {
53 return processError(service, "partial updating", id, err)
54 }
55
56 func ReadError(service, id string, err error) error {
57 return processError(service, "reading", id, err)
58 }
59
60 func DeleteError(service, id string, err error) error {
61 return processError(service, "deleting", id, err)
62 }
63
64 func ListError(service, uri string, err error) error {
65 return processError(service, "listing", uri, err)
66 }
67
68 func MigrateError(service, uri string, err error) error {
69 return processError(service, "migrating", uri, err)
70 }
71
72 func TypeMismatchError(expected, found string) error {
73 return fmt.Errorf("%w: { expected: '%s', found: '%s' }", errTypeMismatch, expected, found)
74 }
75
76 func UnknownDataError(key, found string, data []string) error {
77 return fmt.Errorf("%w: { key: '%s', value: '%s', valid_values: %s }", errInvalid, key, found, data)
78 }
79
80 func ResourceTypeNotFoundError(resourceName, resourceType, key string) error {
81 return fmt.Errorf("%w: { name: '%s', type: '%s', key:'%s'}", errNotFound, resourceName, resourceType, key)
82 }
83
84 func MultipleResourceFoundError(service, id string) error {
85 return processError(service, "reading", id, errMultipleData)
86 }
87