Как отловить момент полной загрузки файла в задаче?

Добрый день! Помогите, пожалуйста.
Мне нужно, чтобы когда я посылаю запрос postSync attachment уже было полностью загружено, потому что в другой системе attachment нужно получить, но получатся что в тот момент, когда моя система пытается получить attachment он еще не успел погрузиться (совсем маленькие файлы по 2кб успевают), как отловить этот момент?


var entities = require('@jetbrains/youtrack-scripting-api/entities');
var http = require('@jetbrains/youtrack-scripting-api/http');

exports.rule = entities.Issue.onChange({
title: 'attachment_to_acm',
guard: function(ctx) {
return ctx.issue.fields["АСМ"] &&
ctx.issue.comments.added.isEmpty() &&
ctx.issue.attachments.added.isNotEmpty();
},
action: function(ctx) {
var issue = ctx.issue;
var connection = new http.Connection('http://10.12.1.60');

var resp = connection.postSync('/wp-admin/admin-ajax.php', {
action: 'ytrack_attachment_to_acm',
id: issue.id,
user: ctx.currentUser.login,
count: ctx.issue.attachments.added.size.toString()
});
},
requirements: {
"АСМ": {
type: entities.Field.integerType
}
}
});

3 comments
Comment actions Permalink
Official comment

Здравствуйте,

PostSync возвращается, только когда от противоположной стороны уже получен ответ. То есть, файлы должны быть уже полностью прикреплены. Возможно, дело все-таки в друогой системе, которую Вы упомянули.

Comment actions Permalink

Анастасия, спасибо за ответ. В другой системе я использую  запрос GET /issue/{issue}/attachment (https://www.jetbrains.com/help/youtrack/standalone/Get-Attachments-of-an-Issue.html ) и этот запрос возвращает все имеющиеся в issue attachments, за исключением тех, которые я только что добавила (через пользовательский интерфейс).  Может быть существует способ получить их тоже?
Добавила перед postSync в свой код

```
var con = new http.Connection('...');
var res = con.getSync('/rest/issue/'+issue.id+'/attachment','');
console.log(res);
```
Также показываются все файлы кроме добавленного.

0
Comment actions Permalink

Марина,

К сожалению, файлы, добавленные в текущей транзакции, еще не попали в базу, поэтому их невозможно получить через REST API. 

0

Please sign in to leave a comment.