minimal working version of backend and cli
This commit is contained in:
@@ -30,13 +30,51 @@ func (s *server) conversations(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
// POST /branches {conversation_id, name, head_node_id}
|
||||
// GET /branches?conversation_id=...
|
||||
// DELETE /branches {conversation_id, name}
|
||||
func (s *server) branches(w http.ResponseWriter, r *http.Request) {
|
||||
if r.Method != http.MethodPost { w.WriteHeader(405); return }
|
||||
var in glue.ForkReq
|
||||
if err := json.NewDecoder(r.Body).Decode(&in); err != nil { writeJSON(w, 400, map[string]string{"error":"bad json"}); return }
|
||||
b, err := s.glue.ForkBranch(r.Context(), in)
|
||||
if err != nil { writeJSON(w, 500, map[string]string{"error": err.Error()}); return }
|
||||
writeJSON(w, 200, b)
|
||||
switch r.Method {
|
||||
case http.MethodPost:
|
||||
var in struct {
|
||||
ConversationID int64 `json:"conversation_id"`
|
||||
Name string `json:"name"`
|
||||
HeadNodeID int64 `json:"head_node_id"`
|
||||
}
|
||||
if err := json.NewDecoder(r.Body).Decode(&in); err != nil {
|
||||
writeJSON(w, 400, map[string]string{"error": "bad json"}); return
|
||||
}
|
||||
b, err := s.glue.ForkBranch(r.Context(), glue.ForkReq{
|
||||
ConversationID: in.ConversationID,
|
||||
Name: in.Name,
|
||||
HeadNodeID: in.HeadNodeID,
|
||||
})
|
||||
if err != nil { writeJSON(w, 500, map[string]string{"error": err.Error()}); return }
|
||||
writeJSON(w, 200, b)
|
||||
|
||||
case http.MethodGet:
|
||||
qs := r.URL.Query().Get("conversation_id")
|
||||
if qs == "" { writeJSON(w, 400, map[string]string{"error":"conversation_id required"}); return }
|
||||
convID, _ := strconv.ParseInt(qs, 10, 64)
|
||||
out, err := s.glue.ListBranches(r.Context(), convID)
|
||||
if err != nil { writeJSON(w, 500, map[string]string{"error": err.Error()}); return }
|
||||
writeJSON(w, 200, out)
|
||||
|
||||
case http.MethodDelete:
|
||||
var in struct {
|
||||
ConversationID int64 `json:"conversation_id"`
|
||||
Name string `json:"name"`
|
||||
}
|
||||
if err := json.NewDecoder(r.Body).Decode(&in); err != nil {
|
||||
writeJSON(w, 400, map[string]string{"error":"bad json"}); return
|
||||
}
|
||||
if err := s.glue.DeleteBranch(r.Context(), in.ConversationID, in.Name); err != nil {
|
||||
writeJSON(w, 500, map[string]string{"error": err.Error()}); return
|
||||
}
|
||||
writeJSON(w, 200, map[string]string{"ok":"true"})
|
||||
|
||||
default:
|
||||
w.WriteHeader(405)
|
||||
}
|
||||
}
|
||||
|
||||
// POST /completion {conversation_id, branch, prompt}
|
||||
|
||||
Reference in New Issue
Block a user