A little bit of context:
From typescript, using code:
const api = await client.api(
new CellProgressUpdate({
Id: // the id
ProgressPercent: // the progress
})
)
if (api.succeeded) {
$q.notify('Progress updated')
} else {
console.log(api) // log here to check -- succeeded: false, completed:false
$q.notify('Error: ' + api.errorMessage)
}
My service doesn’t return a value:
public async Task Post(CellProgressUpdate req)
{
var cell = await repo.Load(req.Id);
if (cell == null)
throw HttpError.NotFound("Cell not found");
cell.Progress = (float)(req.ProgressPercent) / 100;
await repo.SaveCell(cell);
}
Network log shows the service returns 204 No content, as it is void. The DTO is marked with IReturnVoid:
public class CellProgressUpdate : IReturnVoid
{
public ID Id { get; set; }
public int ProgressPercent { get; set; }
}
And this is also visible in the dtos.ts
:
export class CellProgressUpdate implements IReturnVoid
So what’s the problem? I’ve done step-by-step debugging, and there’s no exceptions.
The code return successfully, with 204 No Content, as I guess IReturnVoid should do, but when I log the api
object, succeeded
is false
, completed
is false
.
Is there something with the JsonApiClient
that needs a response to work? I could add a dummy object, or return the updated object, just curious as to why the JsonApiClient interprets this as a incomplete/failed response.