Skip to content

Commit

Permalink
Merge pull request #91 from Shuffle/revert-88-consultation
Browse files Browse the repository at this point in the history
Revert "manage user's consultation hour"
  • Loading branch information
0x0elliot authored Jul 16, 2024
2 parents 7b3501d + 406a529 commit dd2d985
Show file tree
Hide file tree
Showing 2 changed files with 0 additions and 105 deletions.
100 changes: 0 additions & 100 deletions shared.go
Original file line number Diff line number Diff line change
Expand Up @@ -11630,9 +11630,6 @@ func HandleEditOrg(resp http.ResponseWriter, request *http.Request) {
org.SyncFeatures = tmpData.SyncFeatures
org.SyncFeatures.Editing = false
}
if (len(tmpData.Billing.Consultation.Hours) > 0 || len(tmpData.Billing.Consultation.Minutes) > 0) && user.SupportAccess {
org.Billing.Consultation = tmpData.Billing.Consultation
}

// Built a system around this now, which checks for the actual org.
// if requestdata.Environment == "cloud" && project.Environment != "cloud" {
Expand Down Expand Up @@ -28326,100 +28323,3 @@ func GetWorkflowValidation(resp http.ResponseWriter, request *http.Request) {
resp.Write([]byte(`{"success": false, "reason": "Not implemented"}`))
resp.WriteHeader(500)
}
func HandleUserPrivateTraining(resp http.ResponseWriter, request *http.Request) {
cors := HandleCors(resp, request)
if cors {
return
}

err := ValidateRequestOverload(resp, request)
if err != nil {
log.Printf("[INFO] Request overload for IP %s in private training", GetRequestIp(request))
resp.WriteHeader(http.StatusTooManyRequests)
resp.Write([]byte(fmt.Sprintf(`{"success": false, "reason": "Too many requests"}`)))
return
}

gceProject := os.Getenv("SHUFFLE_GCEPROJECT")
if gceProject != "shuffler" && gceProject != sandboxProject && len(gceProject) > 0 {
log.Printf("[DEBUG] Redirecting training request to main site handler (shuffler.io). Project: %s", gceProject)
RedirectUserRequest(resp, request)
return
}

User, userErr := HandleApiAuthentication(resp, request)
if userErr != nil {
log.Printf("[AUDIT] Api authentication failed in private training: %s", userErr)
resp.WriteHeader(401)
resp.Write([]byte(`{"success": false}`))
return
}

body, err := ioutil.ReadAll(request.Body)
if err != nil {
resp.WriteHeader(http.StatusBadRequest)
resp.Write([]byte(fmt.Sprintf(`{"success": false, "reason": "%s"}`, err)))
return
}

type TrainingData struct {
OrgId string `json:"org_id" datastore:"org_id"`
Training string `json:"trainingMembers" datastore:"trainingMembers"`
Message string `json:"message" datastore:"message"`
}

var tmpData TrainingData
err = json.Unmarshal(body, &tmpData)
if err != nil {
log.Printf("[ERROR] Failed unmarshalling test: %s", err)
resp.WriteHeader(http.StatusBadRequest)
resp.Write([]byte(`{"success": false}`))
return
}

if len(tmpData.OrgId) == 0 || len(tmpData.Training) == 0 {
log.Printf("[WARNING] Missing org_id or training in private training request")
resp.WriteHeader(http.StatusBadRequest)
resp.Write([]byte(`{"success": false, "reason": "Missing org_id or training"}`))
return
}

//Get user org
ctx := GetContext(request)
org, err := GetOrg(ctx, tmpData.OrgId)
if err != nil {
log.Printf("[ERROR] Failed getting org %s: %s", tmpData.OrgId, err)
resp.WriteHeader(http.StatusBadRequest)
resp.Write([]byte(`{"success": false}`))
return
}

email := []string{org.Org}
Subject := "Thank you for your private training request"
Message := fmt.Sprintf("Hi there, Thank you for submitting request for shuffle private training. This is confirmation that we have received your private training request. You have requested a private training for %v members. We will get back to you shortly. <br> <br> Best Regards <br>Shuffle Team", tmpData.Training)

err = sendMailSendgrid(email, Subject, Message, false)
if err != nil {
log.Printf("[ERROR] Failed sending mail: %s", err)
resp.WriteHeader(http.StatusBadRequest)
resp.Write([]byte(`{"success": false}`))
return
}

//Send mail to the shuffle support
email = []string{"support@shuffler.io"}
Subject = fmt.Sprintf("Private training request")
Message = fmt.Sprintf("Private training request : <br>Org id: %v <br> Org Name: %v <br>Username: %v <br> Training Members: %v <br>Customer: %v <br> Message: %v", org.Id, org.Name, User.Username, tmpData.Training, org.LeadInfo.Customer, tmpData.Message)

err = sendMailSendgrid(email, Subject, Message, false)
if err != nil {
log.Printf("[ERROR] Failed sending mail: %s", err)
resp.WriteHeader(http.StatusBadRequest)
resp.Write([]byte(`{"success": false}`))
return
}

log.Printf("[INFO] Private training request from %s for %s members. Message: %s", org.Org, tmpData.Training, tmpData.Message)
resp.WriteHeader(http.StatusOK)
resp.Write([]byte(`{"success": true}`))
}
5 changes: 0 additions & 5 deletions structs.go
Original file line number Diff line number Diff line change
Expand Up @@ -895,18 +895,13 @@ type Org struct {
type Billing struct {
Email string `json:"Email" datastore:"Email"`
AlertThreshold []AlertThreshold `json:"AlertThreshold" datastore:"AlertThreshold"`
Consultation Consultation `json:"Consultation" datastore:"Consultation"`
}

type AlertThreshold struct {
Percentage int `json:"percentage" datastore:"percentage"`
Count int `json:"count" datastore:"count"`
Email_send bool `json:"Email_send" datastore:"Email_send"`
}
type Consultation struct {
Hours string `json:"hours" datastore:"hours"`
Minutes string `json:"minutes" datastore:"minutes"`
}

// Authentication overrides that times out
// Only works for certain features, such as public auth keys
Expand Down

0 comments on commit dd2d985

Please sign in to comment.