add vehicle api (#221)

* add vehicle api

* Commit from GitHub Actions (Publish APIs & Clients)

Co-authored-by: asim <asim@users.noreply.github.com>
This commit is contained in:
Asim Aslam
2021-10-04 12:14:31 +01:00
committed by GitHub
parent ec9fc27f24
commit 9b6010372e
22 changed files with 884 additions and 1 deletions

View File

@@ -37,6 +37,7 @@ import (
"github.com/micro/services/clients/go/twitter"
"github.com/micro/services/clients/go/url"
"github.com/micro/services/clients/go/user"
"github.com/micro/services/clients/go/vehicle"
"github.com/micro/services/clients/go/weather"
)
@@ -80,6 +81,7 @@ func NewClient(token string) *Client {
TwitterService: twitter.NewTwitterService(token),
UrlService: url.NewUrlService(token),
UserService: user.NewUserService(token),
VehicleService: vehicle.NewVehicleService(token),
WeatherService: weather.NewWeatherService(token),
}
}
@@ -123,5 +125,6 @@ type Client struct {
TwitterService *twitter.TwitterService
UrlService *url.UrlService
UserService *user.UserService
VehicleService *vehicle.VehicleService
WeatherService *weather.WeatherService
}

61
clients/go/vehicle/vehicle.go Executable file
View File

@@ -0,0 +1,61 @@
package vehicle
import (
"github.com/m3o/m3o-go/client"
)
func NewVehicleService(token string) *VehicleService {
return &VehicleService{
client: client.NewClient(&client.Options{
Token: token,
}),
}
}
type VehicleService struct {
client *client.Client
}
// Lookup a UK vehicle by it's registration number
func (t *VehicleService) Lookup(request *LookupRequest) (*LookupResponse, error) {
rsp := &LookupResponse{}
return rsp, t.client.Call("vehicle", "Lookup", request, rsp)
}
type LookupRequest struct {
// the vehicle registration number
Registration string `json:"registration"`
}
type LookupResponse struct {
// co2 emmissions
Co2emissions float64 `json:"co2emissions"`
// colour of vehicle
Colour string `json:"colour"`
// engine capacity
EngineCapacity int32 `json:"engineCapacity"`
// fuel type e.g petrol, diesel
FuelType string `json:"fuelType"`
// date of last v5 issue
LastV5issued string `json:"lastV5issued"`
// make of vehicle
Make string `json:"make"`
// month of first registration
MonthOfFirstRegistration string `json:"monthOfFirstRegistration"`
// mot expiry
MotExpiry string `json:"motExpiry"`
// mot status
MotStatus string `json:"motStatus"`
// registration number
Registration string `json:"registration"`
// tax due data
TaxDueDate string `json:"taxDueDate"`
// tax status
TaxStatus string `json:"taxStatus"`
// type approvale
TypeApproval string `json:"typeApproval"`
// wheel plan
Wheelplan string `json:"wheelplan"`
// year of manufacture
YearOfManufacture int32 `json:"yearOfManufacture"`
}