37 lines
1.1 KiB
Go
37 lines
1.1 KiB
Go
package models
|
|
|
|
import "strings"
|
|
|
|
// LatestExchangeRateResponse returns a view-object which contains latest exchange rate
|
|
type LatestExchangeRateResponse struct {
|
|
DataSource string `json:"dataSource"`
|
|
ReferenceUrl string `json:"referenceUrl"`
|
|
UpdateTime int64 `json:"updateTime"`
|
|
BaseCurrency string `json:"baseCurrency"`
|
|
ExchangeRates LatestExchangeRateSlice `json:"exchangeRates"`
|
|
}
|
|
|
|
// LatestExchangeRate represents a data pair of currency and exchange rate
|
|
type LatestExchangeRate struct {
|
|
Currency string `json:"currency"`
|
|
Rate string `json:"rate"`
|
|
}
|
|
|
|
// LatestExchangeRateSlice represents the slice data structure of LatestExchangeRate
|
|
type LatestExchangeRateSlice []*LatestExchangeRate
|
|
|
|
// Len returns the count of items
|
|
func (s LatestExchangeRateSlice) Len() int {
|
|
return len(s)
|
|
}
|
|
|
|
// Swap swaps two items
|
|
func (s LatestExchangeRateSlice) Swap(i, j int) {
|
|
s[i], s[j] = s[j], s[i]
|
|
}
|
|
|
|
// Less reports whether the first item is less than the second one
|
|
func (s LatestExchangeRateSlice) Less(i, j int) bool {
|
|
return strings.Compare(s[i].Currency, s[j].Currency) < 0
|
|
}
|