newsletter feature

pull/617/head
hunterlong 2020-05-29 15:06:13 -07:00
parent fd75693331
commit 5eecb5fa53
2 changed files with 45 additions and 1 deletions

View File

@ -71,6 +71,22 @@
<input @keyup="canSubmit" v-model="setup.confirm_password" id="password_confirm" type="password" class="form-control" placeholder="password" required>
</div>
<div class="form-group">
<div class="row">
<div class="col-8">
<label>Email Address</label>
<input @keyup="canSubmit" v-model="setup.email" id="email" type="text" class="form-control" placeholder="myemail@domain.com">
</div>
<div class="col-4">
<label class="d-none d-sm-block">Newsletter</label>
<span @click="setup.newsletter = !!setup.newsletter" class="switch">
<input v-model="setup.newsletter" type="checkbox" name="using_cdn" class="switch" id="send_newsletter" :checked="setup.newsletter">
<label for="send_newsletter"></label>
</span>
</div>
</div>
<small>We will not share your email, emails are only for major updates.</small>
</div>
</div>
<div v-if="error" class="col-12 alert alert-danger">
@ -111,7 +127,9 @@
username: "",
password: "",
confirm_password: "",
sample_data: true
sample_data: true,
newsletter: true,
email: "",
}
}
},

View File

@ -9,6 +9,9 @@ import (
"github.com/statping/statping/types/services"
"github.com/statping/statping/utils"
"net/http"
"net/url"
"strconv"
"strings"
"time"
)
@ -29,6 +32,8 @@ func processSetupHandler(w http.ResponseWriter, r *http.Request) {
project := r.PostForm.Get("project")
description := r.PostForm.Get("description")
domain := r.PostForm.Get("domain")
newsletter := r.PostForm.Get("newsletter")
sendNews, _ := strconv.ParseBool(newsletter)
log.WithFields(utils.ToFields(core.App, confgs)).Debugln("new configs posted")
@ -96,6 +101,13 @@ func processSetupHandler(w http.ResponseWriter, r *http.Request) {
core.App = c
if sendNews {
log.Infoln("Sending email address to newsletter server")
if err := registerNews(confgs.Email, confgs.Domain); err != nil {
log.Errorln(err)
}
}
log.Infoln("Initializing new Statping instance")
if _, err := services.SelectAllServices(true); err != nil {
@ -120,3 +132,17 @@ func processSetupHandler(w http.ResponseWriter, r *http.Request) {
}
returnJson(out, w, r)
}
func registerNews(email, domain string) error {
v := url.Values{}
v.Set("email", email)
v.Set("domain", domain)
v.Set("timezone", "UTC")
rb := strings.NewReader(v.Encode())
_, _, err := utils.HttpRequest("https://news.statping.com", "POST", nil, nil, rb, 10*time.Second, true, nil)
if err != nil {
return err
}
return nil
}