# ## MArrissa Putney
# https://theorchard.looker.com/dashboards/46?Date=9%20days%20ago%20for%207%20days&Client%20Manager=%22Marissa%20Putney%22&Supply%20Chain%20Group=-%22RED%22&filter_config=%7B%22Date%22:%5B%7B%22type%22:%22advanced%22,%22values%22:%5B%7B%22constant%22:%229%20days%20ago%20for%207%20days%22%7D,%7B%7D%5D,%22id%22:0%7D%5D,%22Client%20Manager%22:%5B%7B%22type%22:%22%3D%22,%22values%22:%5B%7B%22constant%22:%22Marissa%20Putney%22%7D,%7B%7D%5D,%22id%22:1%7D%5D,%22Supply%20Chain%20Group%22:%5B%7B%22type%22:%22!%3D%22,%22values%22:%5B%7B%22constant%22:%22RED%22%7D,%7B%7D%5D,%22id%22:2%7D%5D%7D
# 
# ## Amanda Suriani
# https://theorchard.looker.com/dashboards/46?Date=9%20days%20ago%20for%207%20days&Client%20Manager=%22Amanda%20Suriania%22&Supply%20Chain%20Group=-%22RED%22&filter_config=%7B%22Date%22:%5B%7B%22type%22:%22advanced%22,%22values%22:%5B%7B%22constant%22:%229%20days%20ago%20for%207%20days%22%7D,%7B%7D%5D,%22id%22:0%7D%5D,%22Client%20Manager%22:%5B%7B%22type%22:%22%3D%22,%22values%22:%5B%7B%22constant%22:%22Amanda%20Suriania%22%7D,%7B%7D%5D,%22id%22:1%7D%5D,%22Supply%20Chain%20Group%22:%5B%7B%22type%22:%22!%3D%22,%22values%22:%5B%7B%22constant%22:%22RED%22%7D,%7B%7D%5D,%22id%22:2%7D%5D%7D
# 
# ## Jaclyn Bertsch
# https://theorchard.looker.com/dashboards/46?Date=9%20days%20ago%20for%207%20days&Client%20Manager=%22Amanda%20Suriania%22&Supply%20Chain%20Group=-%22RED%22&filter_config=%7B%22Date%22:%5B%7B%22type%22:%22advanced%22,%22values%22:%5B%7B%22constant%22:%229%20days%20ago%20for%207%20days%22%7D,%7B%7D%5D,%22id%22:0%7D%5D,%22Client%20Manager%22:%5B%7B%22type%22:%22%3D%22,%22values%22:%5B%7B%22constant%22:%22Amanda%20Suriania%22%7D,%7B%7D%5D,%22id%22:1%7D%5D,%22Supply%20Chain%20Group%22:%5B%7B%22type%22:%22!%3D%22,%22values%22:%5B%7B%22constant%22:%22RED%22%7D,%7B%7D%5D,%22id%22:2%7D%5D%7D
# 
# 
# https://theorchard.looker.com/dashboards/46?Date=9%20days%20ago%20for%207%20days&Client%20Manager=%22Marissa%20Putney%22&Supply%20Chain%20Group=-%22RED%22&filter_config=%7B%22Date%22:%5B%7B%22type%22:%22advanced%22,%22values%22:%5B%7B%22constant%22:%229%20days%20ago%20for%207%20days%22%7D,%7B%7D%5D,%22id%22:0%7D%5D,%22Client%20Manager%22:%5B%7B%22type%22:%22%3D%22,%22values%22:%5B%7B%22constant%22:%22Marissa%20Putney%22%7D,%7B%7D%5D,%22id%22:1%7D%5D,%22Supply%20Chain%20Group%22:%5B%7B%22type%22:%22!%3D%22,%22values%22:%5B%7B%22constant%22:%22RED%22%7D,%7B%7D%5D,%22id%22:2%7D%5D%7D
# 
# https://theorchard.looker.com/dashboards/46?Date=9%20days%20ago%20for%207%20days&Client%20Manager=%22Marissa%20Putney%22&Supply%20Chain%20Group=-%22RED%22&filter_config=%7B%22Date%22:%5B%7B%22type%22:%22advanced%22,%22values%22:%5B%7B%22constant%22:%229%20days%20ago%20for%207%20days%22%7D,%7B%7D%5D,%22id%22:0%7D%5D,%22Client%20Manager%22:%5B%7B%22type%22:%22%3D%22,%22values%22:%5B%7B%22constant%22:%22Marissa%20Putney%22%7D,%7B%7D%5D,%22id%22:1%7D%5D,%22Supply%20Chain%20Group%22:%5B%7B%22type%22:%22!%3D%22,%22values%22:%5B%7B%22constant%22:%22RED%22%7D,%7B%7D%5D,%22id%22:2%7D%5D%7D
# 

setScience(proj="Looker", subProj="CMDashboardLinks", subl=FALSE)
CMS <- c("Giacomo Coveri", "Jaclyn Bertsch", "Riker Griffiths", "Marissa Putney", "Paul Hanly", "Alyse Vellturo", "Amanda Suriani", "Jeremy Sponder", "Artist/Label Relations")
CMS %<>% unique %>% selfname_
longlinks_jm <- emptylist(CMS)
shortlinks_jm <- emptylist(CMS)

CreateCMLink <- function(CM) {
  dict.url <- getDict("url")
  dict.url[" "] <- "%20"
  CM %<>% quickUrlEncode(dict=dict.url)

  url <- paste0(
           "https://theorchard.looker.com/dashboards/46?Date=9%20days%20ago%20for%207%20days&Client%20Manager=%22"
          , CM
          , "%22&Supply%20Chain%20Group=-%22RED%22&filter_config=%7B%22Date%22:%5B%7B%22type%22:%22advanced%22,%22values%22:%5B%7B%22constant%22:%229%20days%20ago%20for%207%20days%22%7D,%7B%7D%5D,%22id%22:0%7D%5D,%22Client%20Manager%22:%5B%7B%22type%22:%22%3D%22,%22values%22:%5B%7B%22constant%22:%22"
          , CM
          , "%22%7D,%7B%7D%5D,%22id%22:1%7D%5D,%22Supply%20Chain%20Group%22:%5B%7B%22type%22:%22!%3D%22,%22values%22:%5B%7B%22constant%22:%22RED%22%7D,%7B%7D%5D,%22id%22:2%7D%5D%7D"
  ) %>% setNames(nm=sprintf("Looker+Dashboard+for+%s", CM))

  return(url)
}

## CREATE LONG AND SHORT LINKS
longlink_jm <- sapply(unname(CMS), CreateCMLink, USE.NAMES=FALSE)
shortlinks_jm <- mapply(url_shorten, encode=TRUE, longUrl=longlink_jm, title=names(longlink_jm))
shortlinks_jm %<>% setNames(gsub("\\+|%20", " ", names(longlink_jm)))
stopifnot(!duplicated(shortlinks_jm))


createLookML <- function(shortlinks_jm) {
  nms <- names(shortlinks_jm) %>% removeText("Looker Dashboard for ", .) %>% selfname_
  fname <- removeText(" .*", nms)
  lname <- removeText(".* ", nms)

  is_alr <- grepl("^Artist.*FLabel Relations$", nms)
  fname[is_alr] <- "Artist Label Relations"
  lname[is_alr] <- ""

  sprintf(
"
    - dimension: %s_%s_dashboard_link
      label: Dashboard for %s %s
      description: Link to %s's Looker Dashbaord
      type: string
      sql: '''%s'''
      html: |
              <a href=\"%s\">%s's Dashboard
              %s</a>
"
    , tolower(spaceToUnderscore(fname)), tolower(spaceToUnderscore(lname))
    , fname, lname
    , fname
    , shortlinks_jm
    , shortlinks_jm
    , fname
    , shortlinks_jm
    )
}

lookmls <- createLookML(shortlinks_jm)
cls(33); catn("\n\n\n", lookmls)
