github.com/vchain-us/vcn@v0.9.11-0.20210921212052-a2484d23c0b3/pkg/api/utils.go (about) 1 /* 2 * Copyright (c) 2018-2020 vChain, Inc. All Rights Reserved. 3 * This software is released under GPL3. 4 * The full license information can be found under: 5 * https://www.gnu.org/licenses/gpl-3.0.en.html 6 * 7 */ 8 9 package api 10 11 import ( 12 "fmt" 13 14 "github.com/dghubble/sling" 15 "github.com/sirupsen/logrus" 16 "github.com/vchain-us/vcn/internal/errors" 17 "github.com/vchain-us/vcn/internal/logs" 18 "github.com/vchain-us/vcn/pkg/meta" 19 ) 20 21 func logger() *logrus.Logger { 22 return logs.LOG 23 } 24 25 func makeError(msg string, fields logrus.Fields) error { 26 err := fmt.Errorf(msg) 27 logger().WithFields(fields).Error(err) 28 return err 29 } 30 31 func makeFatal(msg string, fields logrus.Fields) error { 32 err := fmt.Errorf(msg) 33 logger().WithFields(fields).Fatal(err) 34 return err 35 } 36 37 func makeAuthRequiredError() error { 38 return makeError(errors.AuthRequired, nil) 39 } 40 41 func contains(xs []string, x string) bool { 42 for _, a := range xs { 43 if a == x { 44 return true 45 } 46 } 47 return false 48 } 49 50 func newSling(token string) (s *sling.Sling) { 51 s = sling.New() 52 s.Add("User-Agent", meta.UserAgent()) 53 if token != "" { 54 s = s.Add("Authorization", "Bearer "+token) 55 } 56 return s 57 }