Hi there,
I’m trying to create a document from the management api and publish it. How can I do it.
I’ll post my code here, just for reference (I tried to replicate the steps that Umbraco does within it’s own CMS, but sadly it does not work for me):
var jsonDocumentContent = JsonContent.Create(documentRequestModel);
var apiDocumentResponse = await client.PostAsync($"{host}/umbraco/management/api/v1/document", jsonDocumentContent);
var apiDocumentResponseText = apiDocumentResponse.Content.ReadAsStringAsync().Result;
if (!apiDocumentResponse.IsSuccessStatusCode)
{
logger.LogWarning("content item could not be created, due to { Reason}. Title: { Title}", apiDocumentResponseText, migrationObject.Title);
continue;
}
var validateDocumentResponse = await client.PutAsync($"{host}/umbraco/management/api/v1.1/document/{documentId}/validate", jsonDocumentContent);
var validateDocumentResponseText = apiDocumentResponse.Content.ReadAsStringAsync().Result;
if (!validateDocumentResponse.IsSuccessStatusCode)
{
logger.LogWarning("content item could not be created, due to { Reason}. Title: { Title}", validateDocumentResponseText, migrationObject.Title);
continue;
}
var cultureAndScheduleRequestModel = new PublishDocumentRequestModel
{
PublishSchedules = []
};
var jsonCultureAndScheduleContent = JsonContent.Create(cultureAndScheduleRequestModel);
var documentPublishResponse = await client.PutAsync($"{host}/umbraco/management/api/v1/document/{documentId}/publish", jsonCultureAndScheduleContent);
var documentPublishResponseText = documentPublishResponse.Content.ReadAsStringAsync().Result;
if (!documentPublishResponse.IsSuccessStatusCode)
{
logger.LogWarning("content item could not be published, due to { Reason}. Title: { Title}", documentPublishResponseText, migrationObject.Title);
continue;
}
var documentPublishedResponse = await client.GetAsync($"{host}/umbraco/management/api/v1/document/{documentId}/published");
var documentPublishedResponseText = documentPublishResponse.Content.ReadAsStringAsync().Result;
if (!documentPublishResponse.IsSuccessStatusCode)
{
logger.LogWarning("content item could not be published, due to { Reason}. Title: { Title}", documentPublishedResponseText, migrationObject.Title);
continue;
}
Just as a heads-up: the document is created successfully, the validate function returns a 200 response and the put request to publish the document returns a 200 response. Only the “published” endpoint I’m running at the end returns a 404 as the “document could not be found” even though it should be published according to the response of the management api endpoint “{host}/umbraco/management/api/v1/document/{documentId}/publish”
Anyone able to help me or willing to help me fix this?
Thanks in advance.