diff --git a/client.go b/client.go index 6a84b09..6a8dae8 100644 --- a/client.go +++ b/client.go @@ -226,7 +226,7 @@ func New(config *config.Config) (*Client, error) { resp := client.auth() respParsed, err := gabs.ParseJSON(resp) if err != nil { - panic(err) + client.logger.Error("error which parsing json", "request", "auth", "error", err.Error()) } if client.isResponseSuccessfull(resp) { @@ -281,6 +281,7 @@ func (c *Client) SelectVehicle(vin string) VehicleData { if err != nil { panic(err) } + c.logger.Debug("http request output", "request", "SelectVehicle", "body", respParsed) vdString := respParsed.Path("data").String() json.Unmarshal([]byte(vdString), &vData) @@ -325,6 +326,7 @@ func (c *Client) GetVehicles() []*Vehicle { if err != nil { c.logger.Error("error which parsing json", "request", "GetVehicles", "error", err.Error()) } + c.logger.Debug("http request output", "request", "GetVehicles", "body", respParsed) vData := VehicleData{} vdString := respParsed.Path("data").String() @@ -377,13 +379,12 @@ func (c *Client) GetVehicleByVIN(vin string) *Vehicle { if err != nil { c.logger.Error("error which parsing json", "request", "GetVehicleByVIN", "error", err.Error()) } + c.logger.Debug("http request output", "request", "GetVehicleByVIN", "body", respParsed) vData := VehicleData{} vdString := respParsed.Path("data").String() json.Unmarshal([]byte(vdString), &vData) - // fmt.Printf("VEHICLE DATA: %+v\n\n", vData) - vehicle = &Vehicle{ Vin: vin, CarName: vData.VehicleName, @@ -542,17 +543,23 @@ func (c *Client) execute(requestUrl string, method string, params map[string]str if method == "POST" { if json { // POST > JSON Body - resp, _ = c.httpClient.R(). + resp, _ = c.httpClient. + R(). SetBody(params). Post(requestUrl) } else { // POST > Form Data - resp, _ = c.httpClient.R(). + resp, _ = c.httpClient. + R(). SetFormData(params). Post(requestUrl) } } - resBytes, _ := io.ReadAll(resp.Body) + resBytes, err := io.ReadAll(resp.Body) + if err != nil { + c.logger.Error("error while getting body", "error", err.Error()) + } + fmt.Printf("RESP BODY: %s\n", string(resBytes)) // if err != nil { // fmt.Println(err) // return diff --git a/consts.go b/consts.go index b68296a..fd6058e 100644 --- a/consts.go +++ b/consts.go @@ -3,8 +3,9 @@ package mysubaru var MOBILE_API_VERSION = "/g2v30" var MOBILE_API_SERVER = map[string]string{ - "USA": "https://mobileapi.prod.subarucs.com", - "CAN": "https://mobileapi.ca.prod.subarucs.com", + "USA": "https://mobileapi.prod.subarucs.com", + "CAN": "https://mobileapi.ca.prod.subarucs.com", + "TEST": "http://127.0.0.1:56765", } var MOBILE_APP = map[string]string{ @@ -116,6 +117,8 @@ var features = map[string]string{ "g1": "Generation #1", "g2": "Generation #2", "g3": "Generation #3", + "BDS": "Blind-Spot Detection", + "RHSF": "Rear High-Speed Function / Reverse Automatic Braking / Rear Cross-Traffic Alert", "11.6MMAN": "11.6-inch Infotainment System", "EYESIGHT": "EyeSight Exclusive Advanced Driver-Assist System", "NAV_TOMTOM": "TomTom Navigation", diff --git a/mysubaru.go b/mysubaru.go index 919dbf7..28b2069 100644 --- a/mysubaru.go +++ b/mysubaru.go @@ -16,14 +16,14 @@ type Response struct { // Account . type Account struct { - MarketID int `json:"marketId"` - CreatedDate int64 `json:"createdDate"` - FirstName string `json:"firstName"` - LastName string `json:"lastName"` - ZipCode string `json:"zipCode"` - AccountKey int `json:"accountKey"` - LastLoginDate time.Time `json:"lastLoginDate"` - ZipCode5 string `json:"zipCode5"` + MarketID int `json:"marketId"` + AccountKey int `json:"accountKey"` + FirstName string `json:"firstName"` + LastName string `json:"lastName"` + ZipCode string `json:"zipCode"` + ZipCode5 string `json:"zipCode5"` + LastLoginDate int64 `json:"lastLoginDate"` + CreatedDate int64 `json:"createdDate"` } // Customer . @@ -67,48 +67,48 @@ type SessionData struct { // Vehicle . // "dataName": "vehicle" type VehicleData struct { - Customer Customer `json:"customer"` // Customer struct - UserOemCustID string `json:"userOemCustId"` // CRM-631-HQN48K - OemCustID string `json:"oemCustId"` // CRM-631-HQN48K - Active bool `json:"active"` // true | false - Email string `json:"email"` // null | email@address.com - FirstName string `json:"firstName"` // null | First Name - LastName string `json:"lastName"` // null | Last Name - Zip string `json:"zip"` // 12345 - Phone string `json:"phone"` // null | 123-456-7890 - StolenVehicle bool `json:"stolenVehicle"` // true | false - VehicleName string `json:"vehicleName"` // Subaru Outback LXT - Features []string `json:"features"` // "11.6MMAN", "ABS_MIL", "ACCS", "AHBL_MIL", "ATF_MIL", "AWD_MIL", "BSD", "BSDRCT_MIL", "CEL_MIL", "EBD_MIL", "EOL_MIL", "EPAS_MIL", "EPB_MIL", "ESS_MIL", "EYESIGHT", "ISS_MIL", "NAV_TOMTOM", "OPL_MIL", "RAB_MIL", "RCC", "REARBRK", "RES", "RESCC", "RHSF", "RPOI", "RPOIA", "SRH_MIL", "SRS_MIL", "TEL_MIL", "TPMS_MIL", "VDC_MIL", "WASH_MIL", "g2" - Vin string `json:"vin"` // 4Y1SL65848Z411439 - VehicleKey int64 `json:"vehicleKey"` // 3832950 - Nickname string `json:"nickname"` // Subaru Outback LXT - ModelName string `json:"modelName"` // Outback - ModelYear string `json:"modelYear"` // 2020 - ModelCode string `json:"modelCode"` // LDJ - ExtDescrip string `json:"extDescrip"` // Abyss Blue Pearl (ext color) - IntDescrip string `json:"intDescrip"` // Gray (int color) - TransCode string `json:"transCode"` // CVT - EngineSize float64 `json:"engineSize"` // 2.4 - Phev bool `json:"phev"` // null - CachedStateCode string `json:"cachedStateCode"` // NJ - LicensePlate string `json:"licensePlate"` // NJ - LicensePlateState string `json:"licensePlateState"` // ABCDEF - SubscriptionStatus string `json:"subscriptionStatus"` // ACTIVE - SubscriptionFeatures []string `json:"subscriptionFeatures"` // "REMOTE", "SAFETY", "Retail" - SubscriptionPlans []string `json:"subscriptionPlans"` // [] - VehicleGeoPosition GeoPosition `json:"vehicleGeoPosition"` // GeoPosition struct - AccessLevel int `json:"accessLevel"` // -1 - VehicleMileage int `json:"vehicleMileage"` // null - CrmRightToRepair bool `json:"crmRightToRepair"` // true | false - AuthorizedVehicle bool `json:"authorizedVehicle"` // false | true - NeedMileagePrompt bool `json:"needMileagePrompt"` // false | true - RemoteServicePinExist bool `json:"remoteServicePinExist"` // true | false - NeedEmergencyContactPrompt bool `json:"needEmergencyContactPrompt"` // false | true - Show3GSunsetBanner bool `json:"show3gSunsetBanner"` // false | true - Provisioned bool `json:"provisioned"` // true | false - TimeZone time.Location `json:"timeZone"` // America/New_York - SunsetUpgraded bool `json:"sunsetUpgraded"` // true | false - PreferredDealer string `json:"preferredDealer"` // null | + Customer Customer `json:"customer"` // Customer struct + UserOemCustID string `json:"userOemCustId"` // CRM-631-HQN48K + OemCustID string `json:"oemCustId"` // CRM-631-HQN48K + Active bool `json:"active"` // true | false + Email string `json:"email"` // null | email@address.com + FirstName string `json:"firstName"` // null | First Name + LastName string `json:"lastName"` // null | Last Name + Zip string `json:"zip"` // 12345 + Phone string `json:"phone"` // null | 123-456-7890 + StolenVehicle bool `json:"stolenVehicle"` // true | false + VehicleName string `json:"vehicleName"` // Subaru Outback LXT + Features []string `json:"features"` // "11.6MMAN", "ABS_MIL", "ACCS", "AHBL_MIL", "ATF_MIL", "AWD_MIL", "BSD", "BSDRCT_MIL", "CEL_MIL", "EBD_MIL", "EOL_MIL", "EPAS_MIL", "EPB_MIL", "ESS_MIL", "EYESIGHT", "ISS_MIL", "NAV_TOMTOM", "OPL_MIL", "RAB_MIL", "RCC", "REARBRK", "RES", "RESCC", "RHSF", "RPOI", "RPOIA", "SRH_MIL", "SRS_MIL", "TEL_MIL", "TPMS_MIL", "VDC_MIL", "WASH_MIL", "g2" + Vin string `json:"vin"` // 4Y1SL65848Z411439 + VehicleKey int64 `json:"vehicleKey"` // 3832950 + Nickname string `json:"nickname"` // Subaru Outback LXT + ModelName string `json:"modelName"` // Outback + ModelYear string `json:"modelYear"` // 2020 + ModelCode string `json:"modelCode"` // LDJ + ExtDescrip string `json:"extDescrip"` // Abyss Blue Pearl (ext color) + IntDescrip string `json:"intDescrip"` // Gray (int color) + TransCode string `json:"transCode"` // CVT + EngineSize float64 `json:"engineSize"` // 2.4 + Phev bool `json:"phev"` // null + CachedStateCode string `json:"cachedStateCode"` // NJ + LicensePlate string `json:"licensePlate"` // NJ + LicensePlateState string `json:"licensePlateState"` // ABCDEF + SubscriptionStatus string `json:"subscriptionStatus"` // ACTIVE + SubscriptionFeatures []string `json:"subscriptionFeatures"` // "REMOTE", "SAFETY", "Retail" + SubscriptionPlans []string `json:"subscriptionPlans"` // [] + VehicleGeoPosition GeoPosition `json:"vehicleGeoPosition"` // GeoPosition struct + AccessLevel int `json:"accessLevel"` // -1 + VehicleMileage int `json:"vehicleMileage"` // null + CrmRightToRepair bool `json:"crmRightToRepair"` // true | false + AuthorizedVehicle bool `json:"authorizedVehicle"` // false | true + NeedMileagePrompt bool `json:"needMileagePrompt"` // false | true + RemoteServicePinExist bool `json:"remoteServicePinExist"` // true | false + NeedEmergencyContactPrompt bool `json:"needEmergencyContactPrompt"` // false | true + Show3GSunsetBanner bool `json:"show3gSunsetBanner"` // false | true + Provisioned bool `json:"provisioned"` // true | false + TimeZone string `json:"timeZone"` // America/New_York + SunsetUpgraded bool `json:"sunsetUpgraded"` // true | false + PreferredDealer string `json:"preferredDealer"` // null | } // GeoPosition .