summaryrefslogtreecommitdiff
path: root/http.go
diff options
context:
space:
mode:
Diffstat (limited to 'http.go')
-rw-r--r--http.go215
1 files changed, 102 insertions, 113 deletions
diff --git a/http.go b/http.go
index 8637d14..99f02d2 100644
--- a/http.go
+++ b/http.go
@@ -5,9 +5,9 @@ import (
"net"
"net/http"
"strings"
- "time"
- "go.wit.com/lib/gui/shell"
+ "go.wit.com/lib/protobuf/forgepb"
+ "go.wit.com/lib/protobuf/gitpb"
"go.wit.com/lib/protobuf/httppb"
"go.wit.com/log"
)
@@ -58,7 +58,6 @@ func okHandler(w http.ResponseWriter, r *http.Request) {
route := reqPB.Route
parts := strings.Split(route, "?")
- // log.Info("client sent url =", route, parts)
requrl := parts[0]
if route == "/" {
@@ -76,153 +75,143 @@ func okHandler(w http.ResponseWriter, r *http.Request) {
log.Warn("forged REQUEST URL =", requrl, "from =", who)
- if strings.HasPrefix(route, "/patches/") {
- pb, err := makePatchesPB(reqPB)
- log.Info("err", err, "len", pb.Len())
- return
- }
-
- if strings.HasPrefix(route, "/patches/applied") {
- log.Info("todo: handle applied patches")
+ if strings.HasPrefix(route, "/repos/") {
+ pb, err := makeReposPB(reqPB)
+ if err != nil {
+ reqPB.Errors = append(reqPB.Errors, log.Sprintf("%v", err))
+ }
+ result := gitpb.NewRepos()
+ switch route {
+ case "/repos/pull":
+ result = pullRequest(pb, reqPB)
+ case "/repos/add":
+ result = addRequest(pb, reqPB)
+ default:
+ result = pullRequest(pb, reqPB)
+ }
+ if err := result.SendReply(w, reqPB); err != nil {
+ log.Info("Oh well, Send to client failed. err =", err)
+ }
+ // todo: logReq(reqPB)
return
}
-
- if route == "/patchset" {
- if err := savePatchset(w, reqPB.Body); err != nil {
- log.Warn("forged /patchset error", err)
- return
+ if strings.HasPrefix(route, "/patches/") {
+ pb, err := makePatchesPB(reqPB)
+ if err != nil {
+ reqPB.Errors = append(reqPB.Errors, log.Sprintf("%v", err))
}
- if err := me.forge.SavePatchsets(); err != nil {
- log.Warn("savePatchsets() failed", err)
- return
+ result := forgepb.NewPatches()
+ switch route {
+ case "/patches/new":
+ result = addNewPatches(pb, reqPB)
+ log.Infof("addNewPatches() pb.Len()=%d result.Len()=%d\n", pb.Len(), result.Len())
+ case "/patches/get":
+ result = sendPendingPatches(pb, reqPB)
+ default:
+ result = addNewPatches(pb, reqPB)
}
+ if err := result.SendReply(w, reqPB); err != nil {
+ log.Info("Oh well, Send to client failed. err =", err)
+ }
+ // todo: logReq(reqPB)
return
}
- if route == "/lookup" {
- log.Info("doing lookup len(reqPB.Body) =", len(reqPB.Body))
- found, err := lookupRepos(reqPB.Body)
- if err != nil {
+ /*
+ if route == "/patchset" {
+ if err := savePatchset(w, reqPB.Body); err != nil {
+ log.Warn("forged /patchset error", err)
+ return
+ }
+ if err := me.forge.SavePatchsets(); err != nil {
+ log.Warn("savePatchsets() failed", err)
+ return
+ }
return
}
- /*
- for repo := range repos.IterAll() {
- repo.Namespace += "good"
- log.Infof("repo:%s,%s\n", repo.Namespace, repo.FullPath)
- }
- */
- found.SendPB(w)
- return
- }
-
- if strings.HasPrefix(route, "/patches/") {
- /*
- pb, err := forgepb.GetPatchesFromHttp(reqPB)
+ if route == "/lookup" {
+ log.Info("doing lookup len(reqPB.Body) =", len(reqPB.Body))
+ found, err := lookupRepos(reqPB.Body)
if err != nil {
- log.Info("error converting to patches PB")
return
}
- handlePatches(w, pb)
- */
- return
- }
- if route == "/patchset" {
- if err := savePatchset(w, reqPB.Body); err != nil {
- log.Warn("forged /patchset error", err)
+ found.SendPB(w)
return
}
- if err := me.forge.SavePatchsets(); err != nil {
- log.Warn("savePatchsets() failed", err)
+ */
+ /*
+ if strings.HasPrefix(route, "/patches/") {
+ pb, err := forgepb.GetPatchesFromHttp(reqPB)
+ if err != nil {
+ log.Info("error converting to patches PB")
+ return
+ }
+ handlePatches(w, pb)
return
}
- return
- }
+ */
- if route == "/lookup" {
- log.Info("doing lookup len(reqPB.Body) =", len(reqPB.Body))
- found, err := lookupRepos(reqPB.Body)
- if err != nil {
+ /*
+ if route == "/patchset" {
+ if err := savePatchset(w, reqPB.Body); err != nil {
+ log.Warn("forged /patchset error", err)
+ return
+ }
+ if err := me.forge.SavePatchsets(); err != nil {
+ log.Warn("savePatchsets() failed", err)
+ return
+ }
return
}
- /*
- for repo := range repos.IterAll() {
- repo.Namespace += "good"
- log.Infof("repo:%s,%s\n", repo.Namespace, repo.FullPath)
+ if route == "/lookup" {
+ log.Info("doing lookup len(reqPB.Body) =", len(reqPB.Body))
+ found, err := lookupRepos(reqPB.Body)
+ if err != nil {
+ return
}
- */
- found.SendPB(w)
- return
- }
- if route == "/patchset" {
- if err := savePatchset(w, reqPB.Body); err != nil {
- log.Warn("forged /patchset error", err)
+ found.SendPB(w)
return
}
- if err := me.forge.SavePatchsets(); err != nil {
- log.Warn("savePatchsets() failed", err)
- return
- }
- return
- }
- if route == "/lookup" {
- log.Info("doing lookup len(reqPB.Body) =", len(reqPB.Body))
- found, err := lookupRepos(reqPB.Body)
- if err != nil {
+ if route == "/update" {
+ log.Info("doing update len(reqPB.Body) =", len(reqPB.Body))
+ found, err := updateRepos(reqPB.Body)
+ if err != nil {
+ return
+ }
+
+ found.SendPB(w)
return
}
+ */
- /*
- for repo := range repos.IterAll() {
- repo.Namespace += "good"
- log.Infof("repo:%s,%s\n", repo.Namespace, repo.FullPath)
+ /*
+ if route == "/GetPatchsets" || route == "/patchsets/get" {
+ data, err := me.forge.Patchsets.Marshal()
+ if err != nil {
+ log.Info("patchsets.Marshal() to wire failed", err)
+ return
}
- */
- found.SendPB(w)
- return
- }
- if route == "/update" {
- log.Info("doing update len(reqPB.Body) =", len(reqPB.Body))
- found, err := updateRepos(reqPB.Body)
- if err != nil {
+ start := time.Now()
+ log.Info("going to w.Write(data) with len", len(data))
+ w.Write(data)
+
+ age := shell.FormatDuration(time.Since(start))
+ log.Printf("Done with xfer in (%s). happy hacking!\n", age)
return
}
- found.SendPB(w)
- return
- }
-
- if route == "/GetPatchsets" || route == "/patchsets/get" {
- data, err := me.forge.Patchsets.Marshal()
- if err != nil {
- log.Info("patchsets.Marshal() to wire failed", err)
+ if route == "/patchsetget" {
+ filename := r.URL.Query().Get("filename")
+ getPatchset(w, filename)
return
}
-
- start := time.Now()
- log.Info("going to w.Write(data) with len", len(data))
- w.Write(data)
-
- /*
- start := time.Now()
- log.Info("going to w.Write(reqPB.Body) with len", len(reqPB.Body))
- w.Write(reqPB.Body)
- */
- age := shell.FormatDuration(time.Since(start))
- log.Printf("Done with xfer in (%s). happy hacking!\n", age)
- return
- }
-
- if route == "/patchsetget" {
- filename := r.URL.Query().Get("filename")
- getPatchset(w, filename)
- return
- }
+ */
if route == "/goReference.svg" {
w.Header().Set("Content-Type", "image/svg+xml")