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  }