Skip to content

Commit f9f1d90

Browse files
Upgrade to v201802
1 parent 3427fab commit f9f1d90

File tree

694 files changed

+8016
-11728
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

694 files changed

+8016
-11728
lines changed

DESCRIPTION

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,16 @@ Imports:
2525
plyr (>= 1.8.3),
2626
XML (>= 3.98-1.2),
2727
utils (>= 3.1.0),
28-
methods (>= 3.1.0)
28+
methods (>= 3.1.0),
29+
xml2,
30+
dplyr,
31+
purrr,
32+
readr
2933
Suggests:
3034
knitr,
3135
testthat,
3236
rmarkdown,
33-
lubridate,
34-
dplyr
37+
lubridate
3538
RoxygenNote: 6.0.1
3639
Collate:
3740
'ActivityGroupService.R'
@@ -89,5 +92,6 @@ Collate:
8992
'dfp_options_settings.R'
9093
'dfp_service_endpoints.R'
9194
'dfp_utils.R'
95+
'dfp_utils_xml.R'
9296
'rdfp.R'
9397
VignetteBuilder: knitr

NAMESPACE

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Generated by roxygen2: do not edit by hand
22

3+
export(build_xml_from_list)
4+
export(catch_errors)
35
export(dfp_auth)
46
export(dfp_createActivities)
57
export(dfp_createActivityGroups)
@@ -193,20 +195,43 @@ export(dfp_updateReconciliationReports)
193195
export(dfp_updateTeams)
194196
export(dfp_updateUserTeamAssociations)
195197
export(dfp_updateUsers)
198+
export(execute_soap_request)
199+
export(form_request_body)
200+
export(get_google_token)
201+
export(parse_soap_response)
202+
export(token_exists)
203+
export(xmlToList2)
204+
export(xml_nodeset_to_df)
196205
importFrom(XML,"xmlValue<-")
197206
importFrom(XML,newXMLNode)
198207
importFrom(XML,newXMLTextNode)
208+
importFrom(XML,xmlApply)
209+
importFrom(XML,xmlAttrs)
199210
importFrom(XML,xmlChildren)
211+
importFrom(XML,xmlParse)
200212
importFrom(XML,xmlRoot)
213+
importFrom(XML,xmlSApply)
214+
importFrom(XML,xmlSize)
201215
importFrom(XML,xmlToList)
202216
importFrom(XML,xmlTreeParse)
203217
importFrom(XML,xmlValue)
204218
importFrom(curl,curl_download)
219+
importFrom(dplyr,"%>%")
220+
importFrom(dplyr,as_data_frame)
221+
importFrom(dplyr,as_tibble)
205222
importFrom(httr,POST)
206223
importFrom(httr,content)
224+
importFrom(httr,http_error)
225+
importFrom(httr,status_code)
207226
importFrom(methods,as)
208227
importFrom(plyr,alply)
209-
importFrom(plyr,ldply)
210-
importFrom(plyr,llply)
228+
importFrom(purrr,map)
229+
importFrom(purrr,map_df)
230+
importFrom(readr,type_convert)
231+
importFrom(utils,capture.output)
211232
importFrom(utils,read.table)
212-
importFrom(utils,tail)
233+
importFrom(xml2,xml_find_all)
234+
importFrom(xml2,xml_find_first)
235+
importFrom(xml2,xml_length)
236+
importFrom(xml2,xml_ns_strip)
237+
importFrom(xml2,xml_text)

NEWS.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,14 @@
22

33
### Features
44

5-
* Nothing Yet!
5+
* Upgraded to API version `v201802`
6+
* Created more efficient parsers `parse_soap_response()`
67

78
### Bug Fixes
89

9-
* Nothing Yet!
10+
* Line item targeting does not come back as a matrix. It is preserved as a list
11+
so it can be directly passed back into the ForecastService functions or LineItemService
12+
to get detailed availability
1013

1114
---
1215

R/ActivityGroupService.R

Lines changed: 13 additions & 121 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,7 @@
1212
#'
1313
#' Creates a new ActivityGroup objects.
1414
#'
15-
#' @importFrom plyr llply ldply
16-
#' @importFrom utils tail
17-
#' @seealso \href{https://developers.google.com/doubleclick-publishers/docs/reference/v201711/ActivityGroupService#createActivityGroups}{Google Documentation for createActivityGroups}
15+
#' @seealso \href{https://developers.google.com/doubleclick-publishers/docs/reference/v201802/ActivityGroupService#createActivityGroups}{Google Documentation for createActivityGroups}
1816
#'
1917
#' @param request_data a \code{list} or \code{data.frame} of data elements
2018
#' to be formatted for a SOAP
@@ -25,43 +23,9 @@
2523
#' @return a \code{data.frame} or \code{list} containing all the elements of a createActivityGroupsResponse
2624
#' @export
2725
dfp_createActivityGroups <- function(request_data, as_df=TRUE, verbose=FALSE){
28-
request_body <- make_request_body(service='ActivityGroupService', root_name='createActivityGroups', data=request_data)
29-
request <- build_soap_request(body = request_body, verbose=verbose)
30-
31-
null_root <- is.null(request)
32-
response <- NULL
33-
response <- try(xmlChildren(xmlChildren(xmlChildren(xmlRoot(request))$Body)[['createActivityGroupsResponse']]), silent=T)
34-
result <- if(null_root | is.null(response)){
35-
NULL
36-
} else if(is.null(response$rval)){
37-
NULL
38-
} else if (as_df){
39-
if(length(response[grepl('rval', names(response))])==1 &
40-
names(response[grepl('rval', names(response))][[1]])[1]=='totalResultSetSize' &
41-
names(response[grepl('rval', names(response))][[1]])[2]=='startIndex'){
42-
ldply(tail(response[grepl('rval', names(response))]$rval, -2),
43-
.fun=function(x){
44-
x <- xmlToList(x)
45-
x[sapply(x, is.null)] <- NA
46-
new_x <- as.data.frame(x, stringsAsFactors = F)
47-
return(new_x)
48-
}, .id=NULL)
49-
} else {
50-
ldply(response[grepl('rval', names(response))],
51-
.fun=function(x){
52-
x <- xmlToList(x)
53-
x[sapply(x, is.null)] <- NA
54-
new_x <- as.data.frame(x, stringsAsFactors = F)
55-
return(new_x)
56-
}, .id=NULL)
57-
}
58-
} else {
59-
llply(response[grepl('rval', names(response))],
60-
.fun=function(x){
61-
x <- xmlToList(x)
62-
return(x)
63-
})
64-
}
26+
request_body <- form_request_body(service='ActivityGroupService', root_name='createActivityGroups', data=request_data)
27+
response <- execute_soap_request(body=request_body, verbose=verbose)
28+
result <- parse_soap_response(httr_response=response, resp_element='createActivityGroupsResponse', as_df=as_df)
6529
return(result)
6630
}
6731
#'
@@ -76,9 +40,7 @@ dfp_createActivityGroups <- function(request_data, as_df=TRUE, verbose=FALSE){
7640
#' \item{status}
7741
#' }
7842
#'
79-
#' @importFrom plyr llply ldply
80-
#' @importFrom utils tail
81-
#' @seealso \href{https://developers.google.com/doubleclick-publishers/docs/reference/v201711/ActivityGroupService#getActivityGroupsByStatement}{Google Documentation for getActivityGroupsByStatement}
43+
#' @seealso \href{https://developers.google.com/doubleclick-publishers/docs/reference/v201802/ActivityGroupService#getActivityGroupsByStatement}{Google Documentation for getActivityGroupsByStatement}
8244
#'
8345
#' @param request_data a \code{list} or \code{data.frame} of data elements
8446
#' to be formatted for a SOAP
@@ -89,53 +51,17 @@ dfp_createActivityGroups <- function(request_data, as_df=TRUE, verbose=FALSE){
8951
#' @return a \code{data.frame} or \code{list} containing all the elements of a getActivityGroupsByStatementResponse
9052
#' @export
9153
dfp_getActivityGroupsByStatement <- function(request_data, as_df=TRUE, verbose=FALSE){
92-
request_body <- make_request_body(service='ActivityGroupService', root_name='getActivityGroupsByStatement', data=request_data)
93-
request <- build_soap_request(body = request_body, verbose=verbose)
94-
95-
null_root <- is.null(request)
96-
response <- NULL
97-
response <- try(xmlChildren(xmlChildren(xmlChildren(xmlRoot(request))$Body)[['getActivityGroupsByStatementResponse']]), silent=T)
98-
result <- if(null_root | is.null(response)){
99-
NULL
100-
} else if(is.null(response$rval)){
101-
NULL
102-
} else if (as_df){
103-
if(length(response[grepl('rval', names(response))])==1 &
104-
names(response[grepl('rval', names(response))][[1]])[1]=='totalResultSetSize' &
105-
names(response[grepl('rval', names(response))][[1]])[2]=='startIndex'){
106-
ldply(tail(response[grepl('rval', names(response))]$rval, -2),
107-
.fun=function(x){
108-
x <- xmlToList(x)
109-
x[sapply(x, is.null)] <- NA
110-
new_x <- as.data.frame(x, stringsAsFactors = F)
111-
return(new_x)
112-
}, .id=NULL)
113-
} else {
114-
ldply(response[grepl('rval', names(response))],
115-
.fun=function(x){
116-
x <- xmlToList(x)
117-
x[sapply(x, is.null)] <- NA
118-
new_x <- as.data.frame(x, stringsAsFactors = F)
119-
return(new_x)
120-
}, .id=NULL)
121-
}
122-
} else {
123-
llply(response[grepl('rval', names(response))],
124-
.fun=function(x){
125-
x <- xmlToList(x)
126-
return(x)
127-
})
128-
}
54+
request_body <- form_request_body(service='ActivityGroupService', root_name='getActivityGroupsByStatement', data=request_data)
55+
response <- execute_soap_request(body=request_body, verbose=verbose)
56+
result <- parse_soap_response(httr_response=response, resp_element='getActivityGroupsByStatementResponse', as_df=as_df)
12957
return(result)
13058
}
13159
#'
13260
#' updateActivityGroups
13361
#'
13462
#' Updates the specified ActivityGroup objects.
13563
#'
136-
#' @importFrom plyr llply ldply
137-
#' @importFrom utils tail
138-
#' @seealso \href{https://developers.google.com/doubleclick-publishers/docs/reference/v201711/ActivityGroupService#updateActivityGroups}{Google Documentation for updateActivityGroups}
64+
#' @seealso \href{https://developers.google.com/doubleclick-publishers/docs/reference/v201802/ActivityGroupService#updateActivityGroups}{Google Documentation for updateActivityGroups}
13965
#'
14066
#' @param request_data a \code{list} or \code{data.frame} of data elements
14167
#' to be formatted for a SOAP
@@ -146,43 +72,9 @@ dfp_getActivityGroupsByStatement <- function(request_data, as_df=TRUE, verbose=F
14672
#' @return a \code{data.frame} or \code{list} containing all the elements of a updateActivityGroupsResponse
14773
#' @export
14874
dfp_updateActivityGroups <- function(request_data, as_df=TRUE, verbose=FALSE){
149-
request_body <- make_request_body(service='ActivityGroupService', root_name='updateActivityGroups', data=request_data)
150-
request <- build_soap_request(body = request_body, verbose=verbose)
151-
152-
null_root <- is.null(request)
153-
response <- NULL
154-
response <- try(xmlChildren(xmlChildren(xmlChildren(xmlRoot(request))$Body)[['updateActivityGroupsResponse']]), silent=T)
155-
result <- if(null_root | is.null(response)){
156-
NULL
157-
} else if(is.null(response$rval)){
158-
NULL
159-
} else if (as_df){
160-
if(length(response[grepl('rval', names(response))])==1 &
161-
names(response[grepl('rval', names(response))][[1]])[1]=='totalResultSetSize' &
162-
names(response[grepl('rval', names(response))][[1]])[2]=='startIndex'){
163-
ldply(tail(response[grepl('rval', names(response))]$rval, -2),
164-
.fun=function(x){
165-
x <- xmlToList(x)
166-
x[sapply(x, is.null)] <- NA
167-
new_x <- as.data.frame(x, stringsAsFactors = F)
168-
return(new_x)
169-
}, .id=NULL)
170-
} else {
171-
ldply(response[grepl('rval', names(response))],
172-
.fun=function(x){
173-
x <- xmlToList(x)
174-
x[sapply(x, is.null)] <- NA
175-
new_x <- as.data.frame(x, stringsAsFactors = F)
176-
return(new_x)
177-
}, .id=NULL)
178-
}
179-
} else {
180-
llply(response[grepl('rval', names(response))],
181-
.fun=function(x){
182-
x <- xmlToList(x)
183-
return(x)
184-
})
185-
}
75+
request_body <- form_request_body(service='ActivityGroupService', root_name='updateActivityGroups', data=request_data)
76+
response <- execute_soap_request(body=request_body, verbose=verbose)
77+
result <- parse_soap_response(httr_response=response, resp_element='updateActivityGroupsResponse', as_df=as_df)
18678
return(result)
18779
}
188-
#'
80+
#'

0 commit comments

Comments
 (0)