bri

package module
v0.5.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 16, 2021 License: MIT Imports: 15 Imported by: 0

README

BRI Sangu

Usage blueprint

  1. There is a type named Client (bri.Client) that should be instantiated through NewClient which hold any possible setting to the library.
  2. There is a gateway classes which you will be using depending on whether you used. The gateway type need a Client instance.
  3. Any activity (token request) is done in the gateway level.

Example

    briClient := bri.NewClient()
    briClient.BaseUrl = "BRI_BASE_URL"
    briClient.ClientId = "BRI_CLIENT_ID"
    briClient.ClientSecret = "BRI_CLIENT_SECRET"

    coreGateway := bri.CoreGateway{
        Client: briClient,
    }

    res, _ := coreGateway.GetToken()

Documentation

Index

Constants

View Source
const (
	TOKEN_PATH          = "/oauth/client_credential/accesstoken?grant_type=client_credentials"
	VA_PATH             = "/v1/briva"
	VA_REPORT_PATH      = "/v1/briva/report"
	VA_INFORMATION_PATH = "/v1/briva/status"
	BRI_TIME_FORMAT     = "2006-01-02T15:04:05.999Z"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	BaseUrl         string
	ClientId        string
	ClientSecret    string
	InstitutionCode string
	BrivaNo         string
	LogLevel        int
	Logger          *log.Logger
}

func NewClient

func NewClient() Client

NewClient : this function will always be called when the library is in use

func (*Client) Call

func (c *Client) Call(method, path string, header map[string]string, body io.Reader, v interface{}) error

Call the BRI API at specific `path` using the specified HTTP `method`. The result will be given to `v` if there is no error. If any error occurred, the return of this function is the error itself, otherwise nil.

func (*Client) ExecuteRequest

func (c *Client) ExecuteRequest(req *http.Request, v interface{}) error

ExecuteRequest : execute request

func (*Client) NewRequest

func (c *Client) NewRequest(method string, fullPath string, headers map[string]string, body io.Reader) (*http.Request, error)

NewRequest : send new request

type CoreGateway

type CoreGateway struct {
	Client Client
}

CoreGateway struct

func (*CoreGateway) Call

func (gateway *CoreGateway) Call(method, path string, header map[string]string, body io.Reader, v interface{}) error

Call : base method to call Core API

func (*CoreGateway) CreateVA

func (gateway *CoreGateway) CreateVA(token string, req CreateVaRequest) (res VaResponse, err error)

func (*CoreGateway) DeleteVA

func (gateway *CoreGateway) DeleteVA(token string, req DeleteVaRequest) (res VaDeleteResponse, err error)

func (*CoreGateway) GetInformationVA

func (gateway *CoreGateway) GetInformationVA(token string, req GetInformationVaRequest) (res VaInformationResponse, err error)

func (*CoreGateway) GetReportVA

func (gateway *CoreGateway) GetReportVA(token string, req GetReportVaRequest) (res VaReportResponse, err error)

func (*CoreGateway) GetToken

func (gateway *CoreGateway) GetToken() (res TokenResponse, err error)

func (*CoreGateway) UpdateVA

func (gateway *CoreGateway) UpdateVA(token string, req CreateVaRequest) (res VaResponse, err error)

type CreateVaRequest

type CreateVaRequest struct {
	InstitutionCode string `json:"institutionCode"`
	BrivaNo         string `json:"brivaNo"`
	CustCode        string `json:"custCode"`
	Name            string `json:"nama"`
	Amount          string `json:"amount"`
	Description     string `json:"keterangan"`
	ExpiredDate     string `json:"expiredDate"`
}

type DeleteVaRequest

type DeleteVaRequest struct {
	InstitutionCode string `json:"institutionCode"`
	BrivaNo         string `json:"brivaNo"`
	CustCode        string `json:"custCode"`
}

type GetInformationVaRequest

type GetInformationVaRequest struct {
	InstitutionCode string
	BrivaNo         string
	CustCode        string
}

type GetReportVaRequest

type GetReportVaRequest struct {
	InstitutionCode string
	BrivaNo         string
	StartDate       string
	EndDate         string
}

type TokenResponse

type TokenResponse struct {
	AccessToken string   `json:"access_token"`
	ExpiredTime string   `json:"expires_in"`
	ProductList []string `json:"api_product_list_json"`
}

type VaData

type VaData struct {
	InstitutionCode string `json:"institutionCode"`
	BrivaNo         string `json:"brivaNo"`
	CustCode        string `json:"custCode"`
	Name            string `json:"nama"`
	Amount          string `json:"amount"`
	Description     string `json:"keterangan"`
	ExpiredDate     string `json:"expiredDate"`
}

type VaDeleteData

type VaDeleteData struct {
	InstitutionCode string `json:"institutionCode"`
	BrivaNo         string `json:"brivaNo"`
	CustCode        string `json:"custCode"`
}

type VaDeleteResponse

type VaDeleteResponse struct {
	Status              bool         `json:"status"`
	ResponseCode        string       `json:"responseCode"`
	ResponseDescription string       `json:"responseDescription"`
	Data                VaDeleteData `json:"data"`
}

type VaInformationData

type VaInformationData struct {
	Status string `json:"statusBayar"`
}

type VaInformationResponse

type VaInformationResponse struct {
	Status              bool              `json:"status"`
	ResponseCode        string            `json:"responseCode"`
	ResponseDescription string            `json:"responseDescription"`
	Data                VaInformationData `json:"data"`
}

type VaReportData

type VaReportData struct {
	BrivaNo     string `json:"brivaNo"`
	CustCode    string `json:"custCode"`
	Nama        string `json:"nama"`
	Amount      string `json:"amount"`
	Description string `json:"keterangan"`
	PaymentDate string `json:"paymentDate"`
	TellerId    string `json:"tellerid"`
	AccountNo   string `json:"no_rek"`
}

type VaReportResponse

type VaReportResponse struct {
	Status       bool           `json:"status"`
	ResponseCode string         `json:"responseCode"`
	Description  string         `json:"responseDescription"`
	ErrDesc      string         `json:"errDesc"`
	Data         []VaReportData `json:"data"`
}

type VaResponse

type VaResponse struct {
	Status              bool   `json:"status"`
	ResponseCode        string `json:"responseCode"`
	ResponseDescription string `json:"responseDescription"`
	ErrDesc             string `json:"errDesc"`
	Data                VaData `json:"data"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL