Проблема с модерацией через SOAP
От: r0nd  
Дата: 20.03.24 13:48
Оценка:
Отправляю отчет о модерации сообщения через SOAP-метод PostChange, ответ приходит что, все ОК. Далее делаю PostChangeCommit — и ничего нигде на UI не добавилось (как-будто и не отсылал вовсе). В списке модераций на UI — моей модерации нет, через SOAP при следующей синхронизации ничего не приходит похожего. Очень похоже на баг работы в части модерилки (все что касается векторов rates и writedMessages — они работающие). А вот с вектором moderates — не выходит совсем. Помогите пожалуйста.
  postRequest
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
  <SOAP-ENV:Header/>
  <S:Body>
    <PostChange xmlns="http://rsdn.ru/Janus/">
      <postRequest>
        <userName>${user}</userName>
        <password>${secret}</password>
        <writedMessages/>
        <rates/>
        <moderates>
          <PostModerateInfo>
            <LocalModerateId>4</LocalModerateId>
            <MessageId>8652737</MessageId>
            <ModerateAction>CloseTopic</ModerateAction>
            <ModerateToForumId>43</ModerateToForumId>
            <Description>Re: Reverse transformation (test #2)</Description>
            <AsModerator>false</AsModerator>
          </PostModerateInfo>
        </moderates>
      </postRequest>
    </PostChange>
  </S:Body>
</S:Envelope>


<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <SOAP-ENV:Header/>
  <soap:Body>
    <PostChangeResponse xmlns="http://rsdn.ru/Janus/"/>
  </soap:Body>
</soap:Envelope>


Через PostChangeCommit получаю что тиккет <4> обработан без ошибок:
  PostChangeCommit
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
  <SOAP-ENV:Header/>
  <S:Body>
    <PostChangeCommit xmlns="http://rsdn.ru/Janus/"/>
  </S:Body>
</S:Envelope>


<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <SOAP-ENV:Header/>
  <soap:Body>
    <PostChangeCommitResponse xmlns="http://rsdn.ru/Janus/">
      <PostChangeCommitResult>
        <commitedIds/>
        <exceptions/>
        <commitedRatingIds/>
        <ratingExceptions/>
        <commitedModerateIds>
          <int>4</int>
        </commitedModerateIds>
        <moderateExceptions/>
      </PostChangeCommitResult>
    </PostChangeCommitResponse>
  </soap:Body>
</soap:Envelope>


И еще вопрос по логике работы:

Какое поле главное при PostModerateInfo при разных типах значений из ModerateAction? Мое понимание работы алгоритма (поправьте если не прав):
Значение ModerateActionОбязательное полеОписание
MoveMessageMessageId, ModerateToForumIdПеренести ветку
DeleteMessageMessageId, AsModerator(?)Удалить сообщение?
DeleteThreadMessageId, AsModerator(?)Удалить ветку
DeleteErrorMessageMessageId (AsModerator только если ты не автор?)Удалить свое сообщение (если нет ответов еще)
SplitThreadMessageId, DescriptionВыделить ветку
CloseTopicMessageIdЗакрывает топик
OpenTopicMessageIdОткрывает топик
Таким образом иные поля игнорируются, я ж правильно понимаю? Например, при SplitThread будет проигнорировано установленное поле ModerateToForumId? Или я не прав?

❧ “A year from now you will wish you had started today.”
Отредактировано 20.03.2024 14:10 r0nd . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.