Задать вопрос

Как загрузить данные с OAuth и обработать в dataTable?

Стоит задача получить данные из форм (формы на gravity forms, wordpress, работа с ними по API), есть consumer key и secret key. При использовании обычного аякс запроса данные приходят, но не удается подружить это дело с dataTables.

Исходный код авторизации:
const oauth = OAuth({
			consumer: {
				key: '[ck_...]',
				secret: '[cs_...]'
			},
			signature_method: 'HMAC-SHA1',
			hash_function(base_string, key) {
				return CryptoJS.HmacSHA1(base_string, key).toString(CryptoJS.enc.Base64);
			}
		});

		const request_data = {
			url: 'https://...path...',
			method: 'GET'
		};

		const token = {
			key: '[key]',
			secret: '[secret]'
		};


Обыкновенное получение аяксом, которое работает:
$.ajax({
			url: request_data.url,
			type: request_data.method,
			data: oauth.authorize(request_data)
		}).done(function(data) {
			console.log(data);
		});


В составе инициализации dataTable (не работает):
function getEndpoint() {
			
			$.ajax({
				url: request_data.url,
				type: request_data.method,
				data: oauth.authorize(request_data),
				dataSrc: function(data) { 
         console.log('Test'); // На этом уровне = уже ничего не выводится в консоль
					let entries = data.entries; 
					let modified = [];
					for (var i = 0; i < entries.length; i++) { 
						modified.push({
							'checkbox-cell': '<label class="b-checkbox checkbox"><input type="checkbox" true-value="true" value="false"> <span class="check"></span> <span class="control-label"></span></label>',
							'id_tag': `<a href="javascript:void(0);" class="tablerow_ID" data-id="${entries[key].id}">${entries[key].id}</a>`,
							'created_at_display': `<span class="tablerow_date">${new Intl.DateTimeFormat().format(new Date(entries[key].date_created))}</span>`,
							'created_at_system': entries[key].date_created,
							'name': `<span class="tablerow_name">${entries[key][21.3]} ${entries[key][21.6]}</span>`,
							'address': entries[key][2],
							'city': entries[key][1],
							'status': '<span data-dest="status" class="tag is-light">' + getStatus(entries[key].status) + '</span>',
							'owner': '<span data-dest="handler" class="tag is-custom">' + getHandler(entries[key].handler) + '</span>'
						});
					}
					return modified;
				}
			});
		}

$('#applications').DataTable({
			ajax: getEndpoint(),
			columns: [
				{data: 'checkbox-cell'},
				{data: 'id_tag'},
				{data: {
					_: 'created_at_display',
					sort: 'created_at_system',
				}},
				{data: 'name'},
				{data: 'address'},
				{data: 'city'},
				{data: 'status'},
				{data: 'owner'},
			],
...
});


Что не так?
  • Вопрос задан
  • 22 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы