add ability to handle other requets than GET
This commit is contained in:
		
							parent
							
								
									81b765a1b2
								
							
						
					
					
						commit
						6dbe6ec436
					
				| 
						 | 
					@ -2,6 +2,10 @@
 | 
				
			||||||
    (* get the request info *)
 | 
					    (* get the request info *)
 | 
				
			||||||
    argv shatter
 | 
					    argv shatter
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    (* if its a get request we want to ignore the request body *)
 | 
				
			||||||
 | 
					    "GET" streq?
 | 
				
			||||||
 | 
					    { pop } ifyes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    (* check to see if we have the root route, if so return index.html *)
 | 
					    (* check to see if we have the root route, if so return index.html *)
 | 
				
			||||||
    dup "/" streq?
 | 
					    dup "/" streq?
 | 
				
			||||||
    choose 
 | 
					    choose 
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1068,19 +1068,25 @@ func Interpret(code Expr, argv []string, w io.Writer) error {
 | 
				
			||||||
			if e != nil {
 | 
								if e != nil {
 | 
				
			||||||
				return e
 | 
									return e
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
								if fun.Tok != FUNCTION {
 | 
				
			||||||
 | 
									return fmt.Errorf("cannot `servehttp` exptected a function to serve @%v", idx)
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			http.ListenAndServe(str.Value.(string), http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
 | 
								http.ListenAndServe(str.Value.(string), http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
 | 
				
			||||||
				req := make([]string, 0)
 | 
									req := make([]string, 0)
 | 
				
			||||||
				req = append(req, r.RequestURI)
 | 
									b, err := ioutil.ReadAll(r.Body)
 | 
				
			||||||
 | 
									if err != nil {
 | 
				
			||||||
				if fun.Tok == FUNCTION {
 | 
										fmt.Println(err)
 | 
				
			||||||
					zerr := Interpret(fun, req, w)
 | 
					 | 
				
			||||||
					if zerr != nil {
 | 
					 | 
				
			||||||
						fmt.Println(zerr)
 | 
					 | 
				
			||||||
					}
 | 
					 | 
				
			||||||
				} else {
 | 
					 | 
				
			||||||
					return
 | 
										return
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
 | 
									req = append(req, r.RequestURI)
 | 
				
			||||||
 | 
									req = append(req, string(b))
 | 
				
			||||||
 | 
									req = append(req, r.Method)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									err = Interpret(fun, req, w)
 | 
				
			||||||
 | 
									if err != nil {
 | 
				
			||||||
 | 
										fmt.Println(err)
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
			}))
 | 
								}))
 | 
				
			||||||
		case READALL:
 | 
							case READALL:
 | 
				
			||||||
			str, e := pop()
 | 
								str, e := pop()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue