Skip to content

opencamp-hq/core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contributors Forks Stargazers Issues MIT License LinkedIn

OpenCamp

Simple Go library for interacting with the recreation.gov API.

Usage

Search for a campground

l := slog.Default()
c := client.New(l, 10*time.Second)
campgrounds, err := c.Suggest("kirk creek")
if err != nil {
  // handle err
}
if len(campgrounds) == 0 {
  fmt.Println("Sorry, no campgrounds with that name were found.")
  return
}

bytes, err := json.MarshalIndent(campgrounds, "", "  ")
if err != nil {
  // handle err
}

fmt.Println(string(bytes))

Check campground availability

l := slog.Default()
c := client.New(l, 10*time.Second)

sites, err := c.Availability("233116", "09-11-2023", "09-13-2023")
if err != nil {
  // handle err
}

if len(sites) == 0 {
  fmt.Println("Sorry we didn't find any available campsites!")
} else {
  fmt.Println("The following sites are available for those dates:")
  for _, s := range sites {
    fmt.Printf(" - Site %-15s Book at: https://www.recreation.gov/camping/campsites/%s\n", s.Site, s.CampsiteID)
  }
}

Poll campground availability

l := slog.Default()
c := client.New(l, 10*time.Second)
ctx := context.Background()

// Blocking operation.
sites, err := c.Poll(ctx, "233116", "09-11-2023", "09-13-2023", "1m")
if err != nil {
  // handle err
}

fmt.Println("Just in! The following sites are now available for those dates:")
for _, s := range sites {
  fmt.Printf(" - Site %-15s Book at: https://www.recreation.gov/camping/campsites/%s\n", s.Site, s.CampsiteID)
}

Retrieve campground data by ID

l := slog.Default()
c := client.New(l, 10*time.Second)
campground, err := c.SearchByID("233116")
if err != nil {
  // handle err
}

bytes, err := json.MarshalIndent(campground, "", "  ")
if err != nil {
  // handle err
}

fmt.Println(string(bytes))

License

Distributed under the MIT License. See LICENSE for more information.

(back to top)

About

Core libraries for OpenCamp

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages