I think I have a good question. I'm making my own overarching request repo that I can just refer to rather than embedding all requests in each separate JS file.
For requests where I'm passing a body I need to pass two things into stringify
- The identifier denoted field
- The value denoted content
I don't seem to be able to replace the identifier field with its actual content, I think it is passing "field" being its name rather than the content of the "field" string.
Calling code:
Request.Request.useSendPostWithBody("User/checkAlt","email","XXX@XXX.uk")
Request code:
Request.useSendPostWithBody = (endpoint, field, content) => {
    const [ data, setData ]=useState('')
        useEffect(() => {
            fetch(`${window.ipAddress.ip}/${endpoint}`, {
                method: "POST",  
                headers:{'Content-Type':'application/json'},
                body: JSON.stringify({ email: content })}) // this works as the required field for this request is email
                // body: JSON.stringify({ field : content })}) // this doesn't and here is where I think the issue lies because not all requests are going to pass "email"
            .then((result)=> { return result.json() })
            .catch(error =>{ 
            console.log("error")
            })
            .then((data)=>{ setData(data)
            console.log('data')
            console.log(data) })
        },[])
    }
 
    