library(RCurl)
library(httr)
library(ona)

setwd('/home/akilimo/ACAI_dwnld_briefCase2/created forms/media files')
# Get tokens
userName = "turry.ouma@gmail.com"
password = "Nya8u8a!"
raw.result <- GET("https://api.ona.io/api/v1/user.json", authenticate(user = "touma",password = "Nya8u8a!"))
raw.result.char<-rawToChar(raw.result$content)
raw.result.json<-fromJSON(raw.result.char)
TOKEN_KEY <- raw.result.json$temp_token
#--------------------------------------------------------------
#experiment countries

meta_exp_cID = readChar("exp_c.txt", 10)
hdr=c(Authorization=paste("Temptoken ",TOKEN_KEY))
DELETE(paste("https://api.ona.io/api/v1/metadata/",meta_exp_cID),add_headers(Authorization=paste("Temptoken ",TOKEN_KEY)))

new_exp_c_id = ''
while(new_exp_c_id ==''){
  
  # user upload
  header=c(Authorization=paste("Temptoken ", TOKEN_KEY), `Content-Type` = 'multipart/form-data')
  post.user.results <- postForm("https://api.ona.io/api/v1/metadata.json",
                                data_value='experiments_countries.csv',data_type='media',xform=523975,
                                data_file=fileUpload(filename = "experiments_countries.csv",contentType = 'text/csv'),
                                .opts=list(httpheader=header), verbose = TRUE)
  # get user ID
  trials.raw.result.json<-fromJSON(post.user.results)
  new_exp_c_id <- trials.raw.result.json$id
}
cat(new_exp_c_id, file = "exp_c.txt")

#-------------------------------------------------------------
#projects

meta_projectsID = readChar("projects.txt", 10)
hdr=c(Authorization=paste("Temptoken ",TOKEN_KEY))
DELETE(paste("https://api.ona.io/api/v1/metadata/",meta_projectsID),add_headers(Authorization=paste("Temptoken ",TOKEN_KEY)))

new_projects_id = ''
while(new_projects_id ==''){
  
  # user upload
  header=c(Authorization=paste("Temptoken ", TOKEN_KEY), `Content-Type` = 'multipart/form-data')
  post.user.results <- postForm("https://api.ona.io/api/v1/metadata.json",
                                data_value='projects.csv',data_type='media',xform=523975,
                                data_file=fileUpload(filename = "projects.csv",contentType = 'text/csv'),
                                .opts=list(httpheader=header), verbose = TRUE)
  # get user ID
  trials.raw.result.json<-fromJSON(post.user.results)
  new_projects_id <- trials.raw.result.json$id
}
meta_projects <- cat(new_projects_id, file = "projects.txt")

#-------------------------------------------------------------
#treatments

meta_treatmentsID = readChar("treatments.txt", 10)
hdr=c(Authorization=paste("Temptoken ",TOKEN_KEY))
DELETE(paste("https://api.ona.io/api/v1/metadata/",meta_treatmentsID),add_headers(Authorization=paste("Temptoken ",TOKEN_KEY)))

new_treatments_id = ''
while(new_treatments_id ==''){
  
  # user upload
  header=c(Authorization=paste("Temptoken ", TOKEN_KEY), `Content-Type` = 'multipart/form-data')
  post.user.results <- postForm("https://api.ona.io/api/v1/metadata.json",
                                data_value='treatments.csv',data_type='media',xform=523975,
                                data_file=fileUpload(filename = "treatments.csv",contentType = 'text/csv'),
                                .opts=list(httpheader=header), verbose = TRUE)
  # get user ID
  trials.raw.result.json<-fromJSON(post.user.results)
  new_treatments_id <- trials.raw.result.json$id
}
 cat(new_treatments_id, file = "treatments.txt")

#-------------------------------------------------------------
#trials
meta_fieldsID = readChar("fields.txt", 10)
hdr=c(Authorization=paste("Temptoken ",TOKEN_KEY))
DELETE(paste("https://api.ona.io/api/v1/metadata/",meta_fieldsID),add_headers(Authorization=paste("Temptoken ",TOKEN_KEY)))

new_fields_id = ''
while(new_fields_id ==''){
  
  # user upload
  header=c(Authorization=paste("Temptoken ", TOKEN_KEY), `Content-Type` = 'multipart/form-data')
  post.user.results <- postForm("https://api.ona.io/api/v1/metadata.json",
                                data_value='fields.csv',data_type='media',xform=523975,
                                data_file=fileUpload(filename = "fields.csv",contentType = 'text/csv'),
                                .opts=list(httpheader=header), verbose = TRUE)
  # get user ID
  trials.raw.result.json<-fromJSON(post.user.results)
  new_fields_id <- trials.raw.result.json$id
}
meta_fields <- cat(new_fields_id, file = "fields.txt")



meta_trialsID = readChar("trials.txt", 10)
hdr=c(Authorization=paste("Temptoken ",TOKEN_KEY))
DELETE(paste("https://api.ona.io/api/v1/metadata/",meta_trialsID),add_headers(Authorization=paste("Temptoken ",TOKEN_KEY)))

new_fields_id = ''
while(new_fields_id ==''){
  
  # upload csv
  header=c(Authorization=paste("Temptoken ", TOKEN_KEY), `Content-Type` = 'multipart/form-data')
  post.user.results <- postForm("https://api.ona.io/api/v1/metadata.json",
                                data_value='trials.csv',data_type='media',xform=523975,
                                data_file=fileUpload(filename = "trials.csv",contentType = 'text/csv'),
                                .opts=list(httpheader=header), verbose = TRUE)
  # get user ID
  trials.raw.result.json<-fromJSON(post.user.results)
  new_fields_id <- trials.raw.result.json$id
}
meta_fields <- cat(new_fields_id, file = "trials.txt")


#-------------------------------------------------------------
#delete existing fields.csv

meta_fieldsID = readChar("fields.txt", 10)
hdr=c(Authorization=paste("Temptoken ",TOKEN_KEY))
DELETE(paste("https://api.ona.io/api/v1/metadata/",meta_fieldsID),add_headers(Authorization=paste("Temptoken ",TOKEN_KEY)))

new_fields_id = ''
while(new_fields_id ==''){
  
  # upload csv
  header=c(Authorization=paste("Temptoken ", TOKEN_KEY), `Content-Type` = 'multipart/form-data')
  post.user.results <- postForm("https://api.ona.io/api/v1/metadata.json",
                                data_value='fields.csv',data_type='media',xform=523975,
                                data_file=fileUpload(filename = "fields.csv",contentType = 'text/csv'),
                                .opts=list(httpheader=header), verbose = TRUE)
  # get user ID
  trials.raw.result.json<-fromJSON(post.user.results)
  new_fields_id <- trials.raw.result.json$id
}
cat(new_fields_id, file = "fields.txt")

#delete existing plots.csv
meta_plotsID = readChar("plots.txt", 10)
hdr=c(Authorization=paste("Temptoken ",TOKEN_KEY))
DELETE(paste("https://api.ona.io/api/v1/metadata/",meta_plotsID),add_headers(Authorization=paste("Temptoken ",TOKEN_KEY)))

new_plots_id = ''
while(new_plots_id ==''){
  
  # upload csv
  header=c(Authorization=paste("Temptoken ", TOKEN_KEY), `Content-Type` = 'multipart/form-data')
  post.user.results <- postForm("https://api.ona.io/api/v1/metadata.json",
                                data_value='plots.csv',data_type='media',xform=523975,
                                data_file=fileUpload(filename = "plots.csv",contentType = 'text/csv'),
                                .opts=list(httpheader=header), verbose = TRUE)
  # get user ID
  plots.raw.result.json<-fromJSON(post.user.results)
  new_plots_id <- plots.raw.result.json$id
}
cat(new_plots_id, file = "plots.txt")

