## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)

## ----setup, eval = FALSE------------------------------------------------------
# library(hakaiApi)
# 
# # Initialize the client
# #   follow link in console and paste auth. code in console
# #   (ignore alignment issue)
# client <- hakaiApi::Client$new()

## ----filter, eval = FALSE-----------------------------------------------------
# # First return some chl data with no filters
# endpoint <- "/eims/views/output/chlorophyll"
# all_chl <- client$get(paste0(client$api_root, endpoint))
# # by default only 20 rows are returned
# str(all_chl) # Look at what columns are available to filter on
# 
# # Narrow it down to QU39
# query <- "?site_id=QU39"
# client$get(paste0(client$api_root, endpoint, query))
# 
# #Get back only accepted values
# query <- "?site_id=QU39&chla_flag=AV"
# client$get(paste0(client$api_root, endpoint, query))
# 
# # Get values from 2017
# query <- "?site_id=QU39&chla_flag=AV&date.year=2017"
# client$get(paste0(client$api_root, endpoint, query))
# 
# # Include only GF/F from the surface
# # It may be useful to split up the queries and rejoin them over multiple lines
# # Using the paste() or paste0() functions
# query <- paste(
#   "site_id=QU39",
#   "chla_flag=AV",
#   "date.year=2017",
#   "filter_type=GF/F",
#   "line_out_depth=0",
#   sep = "&"
# )
# client$get(paste0(client$api_root, endpoint, "?", query))
# 
# # Select only the columns I'm interested in
# query <- paste(
#   "site_id=QU39",
#   "chla_flag=AV",
#   "date.year=2017",
#   "filter_type=GF/F",
#   "line_out_depth=0",
#   "fields=date,chla,lab_technician",
#   sep = "&"
# )
# client$get(paste0(client$api_root, endpoint, "?", query))
# 
# # This looks good so now you can assign a variable and remove the limit
# query <- paste(
#   "site_id=QU39",
#   "chla_flag=AV",
#   "date.year=2017",
#   "filter_type=GF/F",
#   "line_out_depth=0",
#   "fields=date,chla,lab_technician",
#   "limit=-1",
#   sep = "&"
# )
# a_great_chl_query <- client$get(paste0(client$api_root, endpoint, "?", query))
# 
# plot(
#   a_great_chl_query$date,
#   a_great_chl_query$chla,
#   xlim = as.Date(c("2017-01-01", "2018-01-01")),
#   ylim = c(0, 5)
# )
# 

## ----sort, eval = FALSE-------------------------------------------------------
# endpoint <- "/eims/views/output/chlorophyll"
# query <- paste(
#   "fields=date,chla,site_id,line_out_depth",
#   "chla>0", # Note: added chla>0 to remove NA values
#   "date.year=2017",
#   "sort=-chla",
#   "limit=10",
#   sep = "&"
# )
# top_10_chl <- client$get(paste0(client$api_root, endpoint, "?", query))