-
Notifications
You must be signed in to change notification settings - Fork 1
/
ModularPostgresTemplate.R
66 lines (47 loc) · 1.33 KB
/
ModularPostgresTemplate.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
## require() for required libraries for module
library(RPostgreSQL)
library(magrittr)
library(dplyr)
pgsrc <-
read.csv( '/projects/creds.csv', stringsAsFactors = FALSE) %$%
src_postgres(
host = 'postgres'
, dbname = 'dev'
, port = 5432
, user = username
, password = password
, options="-c search_path=public"
)
## postgres
drv <- dbDriver("PostgreSQL")
# creates a connection to the postgres database
# note that "con" will be used later in each connection to the database
con <- read.csv( '/projects/creds.csv', stringsAsFactors = FALSE ) %$%
dbConnect(drv, dbname = "dev",
host = "postgres", port = 5432,
user = username, password = password)
# MODULE UI
**PostgresTemplate**UI <- function(id) {
ns <- NS(id)
## Ui Outputs Here from server below
## for mutliple Output use fillCol/fillRow(), or flowLayout() wrapped around Outputs
## Internal Inputs
# selectInput()
# selectizeInput()
# numericInput() ...
}
# MODULE Server
**PostgresTemplate**Server <- function(input, output, session, outside_inputs...) {
out <- reactive({
dat <- pgsrc %>%
tbl("**Postgres Table Name**") %>%
filter( ) %>%
collect %>%
mutate( ) %>%
filter( ) %>%
select( ) %>%
dbDisconnect(con)
dat
})
return(out)
}