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 *) | ||||
|     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 *) | ||||
|     dup "/" streq? | ||||
|     choose  | ||||
|  |  | |||
|  | @ -1068,19 +1068,25 @@ func Interpret(code Expr, argv []string, w io.Writer) error { | |||
| 			if e != nil { | ||||
| 				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) { | ||||
| 				req := make([]string, 0) | ||||
| 				req = append(req, r.RequestURI) | ||||
| 
 | ||||
| 				if fun.Tok == FUNCTION { | ||||
| 					zerr := Interpret(fun, req, w) | ||||
| 					if zerr != nil { | ||||
| 						fmt.Println(zerr) | ||||
| 					} | ||||
| 				} else { | ||||
| 				b, err := ioutil.ReadAll(r.Body) | ||||
| 				if err != nil { | ||||
| 					fmt.Println(err) | ||||
| 					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: | ||||
| 			str, e := pop() | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue