wikimedia/mediawiki-extensions-Translate

View on GitHub
resources/src/ext.translate.specialTranslationStash/storage.js

Summary

Maintainability
A
0 mins
Test Coverage
'use strict';

/**
 * This class can save translation to translation stash.
 *
 * @since 2013.10
 */
var TranslationStashStorage = function () {
    // No-op for now. Could take api module as param for example.
};

TranslationStashStorage.prototype = {
    /**
     * Save the translation.
     *
     * @param {string} title The title of the page including language code
     *   to store the translation.
     * @param {string} translation The translation of the message
     * @return {jQuery.Promise}
     */
    save: function ( title, translation ) {
        var api = new mw.Api();

        return api.postWithToken( 'csrf', {
            action: 'translationstash',
            subaction: 'add',
            title: title,
            translation: translation
        } ).then( function () {
            // Fake normal save API
            return { edit: { result: 'Success' } };
        } );
    },

    /**
     * Get the current users translations.
     *
     * @param {string} user User name
     * @return {jQuery.Promise}
     */
    getUserTranslations: function ( user ) {
        var api = new mw.Api();

        return api.postWithToken( 'csrf', {
            action: 'translationstash',
            subaction: 'query',
            username: user
        } ).promise();
    }
};

module.exports = TranslationStashStorage;