
if(identical(find.package("odkr", quiet=TRUE), character(0))){
  library(devtools)
  devtools::install_github("validmeasures/odkr")
}


require(odkr)

# setwd("D:/ONA_Data/onaData")
# tar <- "D:/ONA_Data"
# pullTo <- "D:/ONA_Data"
# userName <- "mtariku"
# passWord <- "applenose"
# Export_To <- "D:/ONA_Data/onaData"

# setwd("C:/Users/Turry/Documents/ACAI/ONAdownloadTO/onaData")
# tar <- "C:/Users/Turry/Documents/ACAI/ONAdownloadTO"
# pullTo <- "C:/Users/Turry/Documents/ACAI/ONAdownloadTO"
# userName <- "mtariku"
# passWord <- "applenose"
# Export_To <- "C:/Users/Turry/Documents/ACAI/ONAdownloadTO/onaData"

setwd("/home/akilimo/projects/ONAdownload/onaData")
tar <- "/home/akilimo/projects/ONAdownload"
pullTo <- "/home/akilimo/projects/ONAdownload"
userName <- "mtariku"
passWord <- "applenose"
Export_To <- "/home/akilimo/projects/ONAdownload/onaData"



# pull_remote(target = "C:/Users/Turry/Documents/ACAI/ONAdownload/test", briefcase = "odkBriefcase_latest",
#             sd = FALSE, id = "dataVal_SPHS", to = "C:/Users/Turry/Documents/ACAI/ONAdownload/test/nrm", 
#             from = "https://ona.io/iita_nrm/55308", username = userName, password = passWord)

 
pullOnaData <- function(){
  odkr::pull_remote(target = tar, briefcase = "odkBriefcase_latest",
                    id = "Monitor_NonDestructive_Maize_AC",
                    to = pullTo, sd = FALSE,
                    from = "https://ona.io/iita_nrm", 
                    username = userName,
                    password = passWord)
  
  odkr::export_data(target = tar,overwrite = TRUE,
                    id = "Monitor_NonDestructive_Maize_AC",
              from = tar,
              to = Export_To,
              filename = paste(ID, ".csv", sep=""))

}





briefCaseDwnld <- function(forms, target, source=c("ONA","ODK")){
  require(odkr)
  
  for (i in forms){
    
    fls <- list.files(path=target, pattern=paste(i,"*",sep=""))
    if(length(fls)>1) file.remove(paste(target, "/", fls, sep=""))
    
    pull_remote(id = i, 
                target = target, 
                to = target,
                from = ifelse(source=="ONA", "https://ona.io/iita_nrm", "https://acai-agg.appspot.com"), 
                username = userName, 
                password = passWord)
    
    export_data(id = i, 
                target = target, 
                from = target, 
                to = target, 
                filename = paste(i,".csv",sep=""))
  }
}


###############################################################
###############################################################



formList <- c("Score_Weed_Control", "Assess_GreenBiomass_Yield_Cassava_AC", "Assess_GreenBiomass_Yield_Cassava",
              "Assess_LignifiedStem_Yield_Cassava","Assess_Root_Yield_Cassava",
              "Assess_Starch_Content","Assign_PA","Assign_PO","Assign_TL","Assign_FD","Replace_FB","Replace_PO",
              "Replace_TL","Replace_FD","Confirm_PO_Assign","sample_batch_composition","monitorVAL","VAL_PP",
              "VAL_FR","VAL_IC","VAL_CIS","VAL_SPHS_KW","VAL_SPHS_OG","VAL_SPHS_ON","VAL_SPHS_OY","VAL_SPHS_TZLZE",
              "VAL_SPHS_TZSZ","VAL_SPHS_TZEZ","VAL_SPHS_TZLZW","PRA_SPHS","dataVAL_FR","dataVAL_PP","dataVAL_IC",
              "dataVAL_SPHS","dataVAL_CIS","VAL_PP_Treat","Register_EA","Register_HH","Record_Canopy_Dimensions_AC",
              "Collect_PS_AC","Monitor_NonDestructive_Cassava_AC","Collect_SS_AC",'Collect_Leaf_Tags_AC',
              "Add_Sample_Label_AC","Assess_GreenBiomass_Yield_Cassava_AC","Assess_LignifiedStem_Yield_Cassava_AC",
              "Assess_Root_Yield_Cassava_AC","Assess_Starch_Content_AC","Assign_PA_AC","Assign_PO_AC","Assign_TL_AC",
              "Assign_FD_AC","Replace_FB_AC","Replace_PO_AC","Replace_TL_AC","Replace_FD_AC","Confirm_PO_Assign_AC",
              "Monitor_NonDestructive_Cassava_AC","Record_DM_PS_AC","Collect_PS_AC","Collect_SS_AC","Partition_PS_AC",
              "Pool_Samples_AC","VAL_PP_TZ", "dataVAL_PP_TZ", "Check_ID_Registration"
)

# formList <- c("Register_HH")


# for ( ff in formList){
#   fileName <- paste(ff, ".csv", sep="")
#   if (file.exists(fileName)) file.remove(fileName)
#   briefCaseDwnld(forms=ff, target=tar, source="ONA")
# }
# 
for(ID in formList){
  fileName <- paste(ID, ".csv", sep="")
  if (file.exists(fileName)) file.remove(fileName)
  pullOnaData()
}
# 
# "Assess_GreenBiomass_Yield_Cassava","Assess_LignifiedStem_Yield_Cassava","Assess_Root_Yield_Cassava",
# "Assess_Starch_Content","Assign_PA","Assign_PO","Assign_TL","Assign_FD","Replace_FB","Replace_PO",
# "Replace_TL","Replace_FD","Confirm_PO_Assign","sample_batch_composition","monitorVAL","VAL_PP",
# "VAL_FR","VAL_IC","VAL_CIS","VAL_SPHS_KW","VAL_SPHS_OG","VAL_SPHS_ON","VAL_SPHS_OY","VAL_SPHS_TZLZE",
# "VAL_SPHS_TZSZ","VAL_SPHS_TZEZ","VAL_SPHS_TZLZW","PRA_SPHS","dataVAL_FR","dataVAL_PP","dataVAL_IC",
# "dataVAL_SPHS","dataVAL_CIS","VAL_PP_Treat","Register_EA","Register_HH","Record_Canopy_Dimensions_AC",
# "Collect_PS_AC","Monitor_NonDestructive_Cassava_AC","Collect_SS_AC",'Collect_Leaf_Tags_AC',
# "Add_Sample_Label_AC","Assess_GreenBiomass_Yield_Cassava_AC","Assess_LignifiedStem_Yield_Cassava_AC",
# "Assess_Root_Yield_Cassava_AC","Assess_Starch_Content_AC","Assign_PA_AC","Assign_PO_AC","Assign_TL_AC",
# "Assign_FD_AC","Replace_FB_AC","Replace_PO_AC","Replace_TL_AC","Replace_FD_AC","Confirm_PO_Assign_AC",
# "Monitor_NonDestructive_Cassava_AC","Record_DM_PS_AC","Collect_PS_AC","Collect_SS_AC","Partition_PS_AC",
# "Pool_Samples_AC","VAL_PP_TZ", "dataVAL_PP_TZ", "Check_ID_Registration"




#####################################################
## SandMan data

# forms2 <- c("Assess_Plant_Stand_Maize_AC",
#             "Assess_Plant_Stand_Cassava_AC",
#             "Assess_Leaf_Area_AC",
#             "Score_Pest_Disease_AC",
#             "Record_Canopy_Dimensions_AC",
#             "Collect_Leaf_Tags_AC",
#             "Collect_Tagged_Tops_Cassava_AC",
#             "Describe_FD_AC",
#             "Describe_FD_Exploratory_AC",
#             "Evaluate_TL_AC",
#             "Survey_TEL_Cassava_Marketing",
#             "Survey_FD_Cassava_Cultivation",
#             "Survey_FD_Cassava_Yield",
#             "Survey_HH_General"
# )



#########################################################################
## ACAI - Webform
#########################################################################
## Best Fertilizer Blends Tool Evaluation
# ID = "evaluate_FB"
# fileName <- "evaluate_FB.csv"
# if (file.exists(fileName)) file.remove(fileName)
# pullOnaData()
# 
# ## Best Planting Practices Recommendations
# ID = "Get_PP"
# fileName <- "Get_PP.csv"
# if (file.exists(fileName)) file.remove(fileName)
# pullOnaData()
# 
# ## Best Planting Practices Tool Evaluation
# ID = "evaluate_PP"
# fileName <- "evaluate_PP.csv"
# if (file.exists(fileName)) file.remove(fileName)
# pullOnaData()
# 
# ## Optimal Intercropping Practices Tool Evaluation
# ID = "evaluate_IC"
# fileName <- "evaluate_IC.csv"
# if (file.exists(fileName)) file.remove(fileName)
# pullOnaData()
# 
# ## Sample Action Check
# ID = "sample_action_check"
# fileName <- "sample_action_check.csv"
# if (file.exists(fileName)) file.remove(fileName)
# pullOnaData()
# 
# ## Scheduled Planting and High Starch Content Tools Evaluation
# ID = "evaluate_SPHS"
# fileName <- "evaluate_SPHS.csv"
# if (file.exists(fileName)) file.remove(fileName)
# pullOnaData()
# 
# ## Site-specific Fertilizer Recommendation Tool Evaluation
# ID = "evaluate_FR"
# fileName <- "evaluate_FR.csv"
# if (file.exists(fileName)) file.remove(fileName)
# pullOnaData()
# 
# ## TEL Survey: Cassava Marketing
# ID = "Survey_TEL_Cassava_Marketing"
# fileName <- "Survey_TEL_Cassava_Marketing.csv"
# if (file.exists(fileName)) file.remove(fileName)
# pullOnaData()
# 
# ## TEL Survey: Cost of Land Preparation and Weeding
# ID = "Survey_TEL_LandPrep_Weeding_Cost"
# fileName <- "Survey_TEL_LandPrep_Weeding_Cost.csv"
# if (file.exists(fileName)) file.remove(fileName)
# pullOnaData()
# 
# ## TEL Survey: Maize Marketing
# ID = "Survey_TEL_Maize_Marketing"
# fileName <- "Survey_TEL_Maize_Marketing.csv"
# if (file.exists(fileName)) file.remove(fileName)
# pullOnaData()
# 
# ## TEL_SweetPotato_Marketing
# ID = "Survey_TEL_SweetPotato_Marketing"
# fileName <- "Survey_TEL_SweetPotato_Marketing.csv"
# if (file.exists(fileName)) file.remove(fileName)
# pullOnaData()
# 
# ## Weather Data Entry
# ID = "WD_entry"
# fileName <- "WD_entry.csv"
# if (file.exists(fileName)) file.remove(fileName)
# pullOnaData()



#########################################################################
##
#########################################################################


# 
# if(dwld){
#   
#   #username <- scan("pw.txt", what="character")[1]
#   #password <- scan("pw.txt", what="character")[2]
#   target <- "D:/ONA_Data"
#   to <- "D:/ONA_Data"
#   from <- "https://ona.io/cassavaseedtracking"
#   
#   forms <- c("Survey_TEL_Cassava_Marketing")
#   
#   for (i in forms){
#     if(file.exists(paste(i, ".csv", sep=""))) file.remove(paste(i, ".csv", sep=""))
#     pull_remote(id=i, target=target, to=to, from=from, username=userName, password=passWord)
#     export_data(id=i, target=target, from=to, to=to, filename=paste(i,".csv",sep=""))
#   }
# }
# 
# ds <- read.csv(paste(forms,".csv",sep=""))
# #removing group names to retain ODK parameter names
# names(ds)[grepl('\\.', names(ds))] <- sub('.*\\.', '', names(ds)[grepl('\\.', names(ds))])




#####
# export_data <- function (target = "", briefcase = "odkBriefcase_latest", id, 
#           from = "", to = "", filename = paste(id, "_data.csv", sep = ""), 
#           start = NULL, end = NULL, overwrite = TRUE, exclude = TRUE) 
# {
#   if (target == "") {
#     stop("Cannot locate ODK Briefcase .jar file. Check target location of .jar file is correct.", 
#          call. = TRUE)
#   }
#   if (from == "") {
#     stop("Cannot locate ODK Briefcase Storage. Check target location of storage folder is correct.", 
#          call. = TRUE)
#   }
#   if (to == "") {
#     stop("Cannot locate distination folder for ODK data output. Check destination location is correct.", 
#          call. = TRUE)
#   }
#   z <- paste("java -jar ", target, "/", briefcase, ".jar", 
#              " --form_id ", id, " --storage_directory ", from, " --export_directory ", 
#              to, " --export_filename ", filename, sep = "")
#   if (!is.null(start)) 
#     z <- paste(z, " --export_start_date ", start, sep = "")
#   if (!is.null(end)) 
#     z <- paste(z, " --export_end_data ", end, sep = "")
#   if (overwrite == TRUE) 
#     z <- paste(z, " --overwrite_csv_export ", sep = "")
#   if (exclude == TRUE) 
#     z <- paste(z, " --exclude_media_export ", sep = "")
#   system(z)
# }


