Created
June 25, 2014 20:22
-
-
Save johnvilsack/4828886134bf0081357e to your computer and use it in GitHub Desktop.
Sample Go Application that grabs Item data from custom call
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"encoding/json" | |
"flag" | |
"fmt" | |
"io/ioutil" | |
"net/http" | |
"strconv" | |
) | |
type apiItem interface { | |
apiGetItem() queryItem | |
} | |
type queryItem struct { | |
Query string `json:"query"` | |
Count int `json:"count"` | |
Objects []struct { | |
ITEM_ID string `json:"ITEM_ID"` | |
UPC string `json:"UPC"` | |
ITEM_DESC string `json:"ITEM_DESC"` | |
PROD_CLASS_ID string `json:"PROD_CLASS_ID"` | |
AVAILABLE string `json:"AVAILABLE"` | |
GENDER string `json:"GENDER"` | |
SIZE string `json:"SIZE"` | |
BRAND string `json:"BRAND"` | |
YEAR string `json:"YEAR"` | |
EAN string `json:"EAN"` | |
BIN string `json:"BIN"` | |
PRICE_OURPRICE string `json:"PRICE_OURPRICE"` | |
PRICE_PACKAGE string `json:"PRICE_PACKAGE"` | |
PRICE_COST string `json:"PRICE_COST"` | |
LIST_PRICE string `json:"LIST_PRICE"` | |
FOCUS_WORD string `json:"FOCUS_WORD"` | |
COLOR string `json:"COLOR"` | |
REFINESIZE string `json:"REFINESIZE"` | |
VNDR_ITEM_ID string `json:"VNDR_ITEM_ID"` | |
COMMITTED_QTY string `json:"COMMITTED_QTY"` | |
BIN_LOC string `json:"BIN_LOC"` | |
VENDOR_ID string `json:"VENDOR_ID"` | |
KIT_FLAG string `json:"KIT_FLAG"` | |
TAX_EXEMPT string `json:"TAX_EXEMPT"` | |
ON_ORDER_QTY string `json:"ON_ORDER_QTY"` | |
EXPCT_DELIVERY string `json:"EXPCT_DELIVERY"` | |
LEAD_TIME string `json:"LEAD_TIME"` | |
FIRST_SOLD string `json:"FIRST_SOLD"` | |
LAST_SOLD string `json:"LAST_SOLD"` | |
DROP_SHIP string `json:"DROP_SHIP"` | |
MASTER_STOCK_ID string `json:"MASTER_STOCK_ID"` | |
CREATED_BY string `json:"CREATED_BY"` | |
REFINE_SIZE string `json:"REFINE_SIZE"` | |
COLORC string `json:"COLORC"` | |
MODEL string `json:"MODEL"` | |
COLORB string `json:"COLORB"` | |
UPC_DATE string `json:"UPC_DATE"` | |
UPC_SOURCE string `json:"UPC_SOURCE"` | |
UPC_IMPDATE string `json:"UPC_IMPDATE"` | |
QTY_PICKABLE string `json:"QTY_PICKABLE"` | |
LAST_EDIT_DATE string `json:"LAST_EDIT_DATE"` | |
QTY_ON_HAND string `json:"QTY_ON_HAND"` | |
YTD_UNITS_SOLD string `json:"YTD_UNITS_SOLD"` | |
MTD_UNITS_SOLD string `json:"MTD_UNITS_SOLD"` | |
ENTRY_DATE string `json:"ENTRY_DATE"` | |
ONWEB string `json:"ONWEB"` | |
WEB_ID string `json:"id"` | |
WEB_URL_ID string `json:"url_id"` | |
WEB_IMAGE string `json:"image"` | |
WEB_VENDOR string `json:"vendor"` | |
WEB_NAME string `json:"name"` | |
WEBSHOPCATEGORY string `json:"shopcategory"` | |
WEB_GENDER string `json:"gender"` | |
WEB_YEAR string `json:"year"` | |
WEB_SALE_PRICE string `json:"sale_price"` | |
} `json:"objects"` | |
} | |
func apiGetItem(q string) *queryItem { | |
requestURL := "http://epoch.app/inventory/apiGetItemInfo.php?q=" + q | |
getQuery, err := http.Get(requestURL) | |
if err != nil { | |
panic(err) | |
} | |
defer getQuery.Body.Close() | |
resultQuery, err := ioutil.ReadAll(getQuery.Body) | |
if err != nil { | |
panic(err) | |
} | |
payload := &queryItem{} | |
ok := json.Unmarshal(resultQuery, payload) | |
if ok != nil { | |
panic("json.Unmarshall failure") | |
} | |
return payload | |
} | |
var output string | |
var argRequest string | |
func main() { | |
flag.StringVar(&argRequest, "q", "NaN", "sample text") | |
flag.Parse() | |
RequestItem := apiGetItem(argRequest) | |
if RequestItem.Count <= 0 { | |
output = argRequest + " Not Found" | |
} else if RequestItem.Count == 1 { | |
output = "1 Result Found for " + argRequest + "\n" + RequestItem.Objects[0].ITEM_DESC | |
} else if RequestItem.Count >= 2 { | |
output = strconv.Itoa(RequestItem.Count) + " Results Found for " + argRequest + "\n" | |
for _, v := range RequestItem.Objects { | |
fmt.Println(v.ITEM_DESC) | |
} | |
} else { | |
panic("Result Failure") | |
} | |
fmt.Println(output) | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"query": "MISC01", | |
"count": 1, | |
"objects": [ | |
{ | |
"ITEM_ID": "MISC01", | |
"UPC": "867530900000", | |
"ITEM_DESC": "MISC ITEM $0-25", | |
"PROD_CLASS_ID": "MISC", | |
"AVAILABLE": "999", | |
"GENDER": "", | |
"SIZE": "", | |
"BRAND": "", | |
"YEAR": "0", | |
"EAN": "", | |
"BIN": "", | |
"PRICE_OURPRICE": "0.00", | |
"PRICE_PACKAGE": "0", | |
"PRICE_COST": "0.00", | |
"LIST_PRICE": "0.00", | |
"FOCUS_WORD": "", | |
"COLOR": "Red", | |
"REFINESIZE": "", | |
"VNDR_ITEM_ID": "", | |
"COMMITTED_QTY": "11", | |
"BIN_LOC": "H", | |
"VENDOR_ID": "H0", | |
"KIT_FLAG": "", | |
"TAX_EXEMPT": "N", | |
"ON_ORDER_QTY": "0", | |
"EXPCT_DELIVERY": "", | |
"LEAD_TIME": "0", | |
"FIRST_SOLD": "11/05/82", | |
"LAST_SOLD": "06/25/14", | |
"DROP_SHIP": "N", | |
"MASTER_STOCK_ID": "", | |
"CREATED_BY": "NANCY,11/05/82,14:19,ItemClone", | |
"REFINE_SIZE": "", | |
"COLORC": "Red", | |
"MODEL": "", | |
"COLORB": "Red", | |
"UPC_DATE": "", | |
"UPC_SOURCE": "recheck", | |
"UPC_IMPDATE": "2012-03-23", | |
"QTY_PICKABLE": "999", | |
"LAST_EDIT_DATE": "06/25/14", | |
"QTY_ON_HAND": "999", | |
"YTD_UNITS_SOLD": "371", | |
"MTD_UNITS_SOLD": "140", | |
"ENTRY_DATE": "11/05/82", | |
"ONWEB": "FALSE" | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment