view LipidmapsConn.R @ 2:20d69a062da3 draft

planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit d4048accde6bdfd5b3e14f5394902d38991854f8
author prog
date Thu, 02 Mar 2017 08:55:00 -0500
parents 253d531a0193
children
line wrap: on
line source

#####################
# CLASS DECLARATION #
#####################

LipidmapsConn <- methods::setRefClass("LipidmapsConn", contains = "RemotedbConn")

###############
# CONSTRUCTOR #
###############

LipidmapsConn$methods( initialize = function(...) {
	# From http://www.lipidmaps.org/data/structure/programmaticaccess.html:
	# If you write a script to automate calls to LMSD, please be kind and do not hit our server more often than once per 20 seconds. We may have to kill scripts that hit our server more frequently.
	callSuper(scheduler = UrlRequestScheduler$new(t = 20), ...)
})

##########################
# GET ENTRY CONTENT TYPE #
##########################

LipidmapsConn$methods( getEntryContentType = function() {
	return(BIODB.CSV)
})

#####################
# GET ENTRY CONTENT #
#####################

LipidmapsConn$methods( getEntryContent = function(id) {

	# Initialize return values
	content <- rep(NA_character_, length(id))

	# Request
	content <- vapply(id, function(x) .self$.get.url(get.entry.url(BIODB.LIPIDMAPS, x, content.type = BIODB.CSV)), FUN.VALUE = '')

	return(content)
})

################
# CREATE ENTRY #
################

LipidmapsConn$methods( createEntry = function(content, drop = TRUE) {
	return(createLipidmapsEntryFromCsv(content, drop = drop))
})