# s = some source # x is of type ((metadata)->unit)*source # first part is a function used to update # metadata and second part is the source # whose metadata are updated x = insert_metadata(s) # Get the function insert = fst(x) # Redefine s as the new source s = snd(x) # The handler def set_meta(~method,~protocol,~data,~headers,uri) = # Split uri of the form request?foo=bar&... # into (request,[("foo","bar"),..]) x = url.split(uri) # Filter out unusual metadata meta = metadata.export(snd(x)) # Grab the returned message ret = if meta != [] then insert(meta) "OK!" else "No metadata to add!" end # Return response http_response( protocol=protocol, code=200, headers=[("Content-Type","text/html")], data="#{ret}" ) end # Register handler on port 700 harbor.http.register(port=7000,"/setmeta",set_meta)