goforex

package module
v0.0.0-...-3034914 Latest Latest
Warning

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

Go to latest
Published: Apr 5, 2021 License: MIT Imports: 8 Imported by: 3

README

Go Forex

Provides access to foreign exchange rates and currency conversions. exchangerate.host

Installation

go get github.com/g3kk0/go-forex

Usage

Import package and create client.

import forex "github.com/g3kk0/go-forex"

fc := forex.NewClient()
Get Latest Rates
rates, err := fc.Latest()
if err != nil {
    log.Println(err)
}

fmt.Printf("rates = %+v", rates)
// {Base:EUR Date:2018-10-29 Rates:map[ILS:4.217 RON:4.6647 NZD:1.7401 ...]}
Get Latest Rates for a Specific Base
params := map[string]string{"base": "usd"}
rates, err := fc.Latest(params)
if err != nil {
    log.Println(err)
}

fmt.Printf("rates = %+v", rates)
// {Base:USD Date:2018-10-29 Rates:map[HUF:285.0364642826 ILS:3.7052983042 ...]}
Get Rates for Specific Symbols
params := map[string]string{"base": "usd", "symbols": "gbp,eur"}
rates, err := fc.Latest(params)
if err != nil {
    log.Println(err)
}

fmt.Printf("rates = %+v", rates)
// {Base:USD Date:2018-10-29 Rates:map[GBP:0.7801423425 EUR:0.8786574115]}
Currency Conversion
// currency conversion
params := map[string]string{"from": "eur", "to": "gbp", "amount": "25.62"}
conversion, err := fc.Convert(params)
if err != nil {
    log.Println(err)
}

fmt.Printf("conversion = %+v", conversion)
// {From:EUR To:GBP Amount:25.62 Result:22.7474856}

Documentation

Index

Constants

View Source
const BaseUrl = "https://api.exchangerate.host/"

Variables

This section is empty.

Functions

func Ftoi

func Ftoi(f float64) (i int64, dp int)

func Itof

func Itof(i int64, dp int) (f float64)

Types

type Client

type Client struct {
	Conn *http.Client
}

func NewClient

func NewClient() *Client

func (*Client) Convert

func (c *Client) Convert(params ...map[string]string) (Convert, error)

func (*Client) Latest

func (c *Client) Latest(params ...map[string]string) (Latest, error)

type Convert

type Convert struct {
	From   string  `json:"from"`
	To     string  `json:"to"`
	Amount float64 `json:"amount,string"`
	Result float64 `json:"result,string"`
}

type Latest

type Latest struct {
	Base  string             `json:"base"`
	Date  string             `json:"date"`
	Rates map[string]float64 `json:"rates"`
}

Jump to

Keyboard shortcuts

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