func (cat *Category) GetCategories(r *http.Request) ([]CategoryReturn, error) {
	parentCat := r.Header.Get("Parent-Category")

	//convert header string to int64
	parentId, err := strconv.ParseInt(parentCat, 10, 64)

	if err != nil {
		return []CategoryReturn{}, err
	}

	categoryModel := model.Category{}
	categories, err := categoryModel.GetCategories(r, parentId)

	if err != nil {
		log.Println(err)
	}

	results := make([]CategoryReturn, 0, 20)

	for _, r := range categories {
		y := CategoryReturn{
			Name:     r.Name,
			Id:       r.Id,
			ParentId: r.ParentId,
			Products: r.Products,
			Key:      r.Key,
		}

		results = append(results, y)
	}

	return results, nil
}