150 lines
4.7 KiB
Go
150 lines
4.7 KiB
Go
package html
|
|
|
|
import (
|
|
"strconv"
|
|
|
|
"github.com/Gleipnir-Technology/nidus-sync/config"
|
|
)
|
|
|
|
type ContentURL struct {
|
|
Configuration contentURLConfiguration
|
|
OAuthRefreshArcGIS string
|
|
RMO contentURLRMO
|
|
Root string
|
|
Route string
|
|
Sidebar contentURLSidebar
|
|
Tegola string
|
|
Upload contentURLUpload
|
|
}
|
|
|
|
func NewContentURL() ContentURL {
|
|
return ContentURL{
|
|
Configuration: newContentURLConfiguration(),
|
|
OAuthRefreshArcGIS: config.MakeURLNidus("/arcgis/oauth/begin"),
|
|
RMO: newContentURLRMO(),
|
|
Root: config.MakeURLNidus("/"),
|
|
Route: config.MakeURLNidus("/route"),
|
|
Sidebar: newContentURLSidebar(),
|
|
Tegola: config.MakeURLTegola("/"),
|
|
Upload: newContentURLUpload(),
|
|
}
|
|
}
|
|
|
|
type contentURLConfiguration struct {
|
|
ArcGIS string
|
|
Fieldseeker string
|
|
Integration string
|
|
Organization string
|
|
Pesticide string
|
|
PesticideAdd string
|
|
Root string
|
|
User string
|
|
Upload string
|
|
UserAdd string
|
|
}
|
|
|
|
func newContentURLConfiguration() contentURLConfiguration {
|
|
return contentURLConfiguration{
|
|
ArcGIS: config.MakeURLNidus("/configuration/integration/arcgis"),
|
|
Fieldseeker: config.MakeURLNidus("/configuration/integration/fieldseeker"),
|
|
Integration: config.MakeURLNidus("/configuration/integration"),
|
|
Organization: config.MakeURLNidus("/configuration/organization"),
|
|
Pesticide: config.MakeURLNidus("/configuration/pesticide"),
|
|
PesticideAdd: config.MakeURLNidus("/configuration/pesticide/add"),
|
|
Root: config.MakeURLNidus("/configuration"),
|
|
User: config.MakeURLNidus("/configuration/user"),
|
|
Upload: config.MakeURLNidus("/configuration/upload"),
|
|
UserAdd: config.MakeURLNidus("/configuration/user/add"),
|
|
}
|
|
}
|
|
|
|
type contentURLRMO struct {
|
|
Mailer contentURLRMOMailer
|
|
}
|
|
|
|
func newContentURLRMO() contentURLRMO {
|
|
return contentURLRMO{
|
|
Mailer: newContentURLRMOMailer(),
|
|
}
|
|
}
|
|
|
|
type contentURLRMOMailer struct {
|
|
AppointmentConfirmed urlWithParams
|
|
Confirm urlWithParams
|
|
Contribute urlWithParams
|
|
Evidence urlWithParams
|
|
Root urlWithParams
|
|
Schedule urlWithParams
|
|
Update urlWithParams
|
|
}
|
|
|
|
func newContentURLRMOMailer() contentURLRMOMailer {
|
|
return contentURLRMOMailer{
|
|
AppointmentConfirmed: makeURLWithParams(config.MakeURLReport, "/mailer/%s/appointment-confirmed"),
|
|
Confirm: makeURLWithParams(config.MakeURLReport, "/mailer/%s/confirm"),
|
|
Contribute: makeURLWithParams(config.MakeURLReport, "/mailer/%s/contribute"),
|
|
Evidence: makeURLWithParams(config.MakeURLReport, "/mailer/%s/evidence"),
|
|
Root: makeURLWithParams(config.MakeURLReport, "/mailer/%s"),
|
|
Schedule: makeURLWithParams(config.MakeURLReport, "/mailer/%s/schedule"),
|
|
Update: makeURLWithParams(config.MakeURLReport, "/mailer/%s/update"),
|
|
}
|
|
}
|
|
|
|
type contentURLSidebar struct {
|
|
Communication string
|
|
Configuration string
|
|
Intelligence string
|
|
Operations string
|
|
Planning string
|
|
Review string
|
|
}
|
|
|
|
func newContentURLSidebar() contentURLSidebar {
|
|
return contentURLSidebar{
|
|
Communication: config.MakeURLNidus("/communication"),
|
|
Configuration: config.MakeURLNidus("/configuration"),
|
|
Intelligence: config.MakeURLNidus("/intelligence"),
|
|
Operations: config.MakeURLNidus("/operations"),
|
|
Planning: config.MakeURLNidus("/planning"),
|
|
Review: config.MakeURLNidus("/review"),
|
|
}
|
|
}
|
|
|
|
type urlForID = func(int) string
|
|
type urlWithParams = func(...string) string
|
|
|
|
type urlMaker func(path string, args ...string) string
|
|
|
|
func makeURLForID(maker urlMaker, pattern string) urlForID {
|
|
return func(id int) string {
|
|
params := []string{
|
|
strconv.Itoa(id),
|
|
}
|
|
return maker(pattern, params...)
|
|
}
|
|
}
|
|
func makeURLWithParams(maker urlMaker, pattern string, args ...string) urlWithParams {
|
|
return func(args ...string) string {
|
|
return maker(pattern, args...)
|
|
}
|
|
}
|
|
|
|
type contentURLUpload struct {
|
|
Commit urlForID
|
|
Discard urlForID
|
|
Pool string
|
|
PoolCustom string
|
|
PoolFlyover string
|
|
SamplePoolCSV string
|
|
}
|
|
|
|
func newContentURLUpload() contentURLUpload {
|
|
return contentURLUpload{
|
|
Commit: makeURLForID(config.MakeURLNidus, "/configuration/upload/%s/commit"),
|
|
Discard: makeURLForID(config.MakeURLNidus, "/configuration/upload/%s/discard"),
|
|
Pool: config.MakeURLNidus("/configuration/upload/pool"),
|
|
PoolFlyover: config.MakeURLNidus("/configuration/upload/pool/flyover"),
|
|
PoolCustom: config.MakeURLNidus("/configuration/upload/pool/custom"),
|
|
SamplePoolCSV: config.MakeURLNidus("/static/file/sample-pool.csv"),
|
|
}
|
|
}
|