/** * Created by maprex on 2021-10-26 */ 'use strict'; define([ 'app', 'angular' ], function (app, angular) { app.controller('apiAuthController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$state', 'Api', 'SweetAlert', '$timeout', '$filter', function ($scope, $rootScope, $log, $resourceProvider, $state, Api, SweetAlert, $timeout, $filter) { $scope.fn = { formSubmit : formSubmit, remove : remove, find : find, formCheck : formCheck, copyToken : copyToken }; $scope.vm = { responseData : { data : [] }, form : { appName : "", token : "" } }; // 폼 체크 function formCheck(formInvalid) { if (formInvalid) { return true; } return false; } function formSubmit() { var conditions = { appName : $scope.vm.form.appName } Api.add($resourceProvider.getContent(conditions, $resourceProvider.getPageContent(0, 1))).then(function (result) { if (result.data.message.status === "success") { if (angular.isDefined(result.data.data)) { $scope.vm.form.token = result.data.data.token; } SweetAlert.swal($filter("translate")("api.successToApiTokenAdd"), result.data.message.message, "success"); // "api 토큰 생성 성공" } else { SweetAlert.swal($filter("translate")("api.failedToApiTokenAdd"), result.data.message.message, "error"); // "api 토큰 생성 실패" } }); } function remove() { var content = { id : "" } Api.remove($resourceProvider.getContent(content, $resourceProvider.getPageContent(0, 1))).then(function (result) { if (result.data.message.status === "success") { $scope.vm.form.token = ""; SweetAlert.swal($filter("translate")("api.successToApiTokenRemove"), result.data.message.message, "success"); // "api 토큰 생성 성공" } else { SweetAlert.swal($filter("translate")("api.failedToApiTokenRemove"), result.data.message.message, "error"); // "api 토큰 삭제 실패" } }); } // navigator.clipboard 는 브라우저 보안이나 활성화 여부에 따라 사용이 안될때가 있음 function copyToClipboard(textToCopy) { // navigator clipboard api needs a secure context (https) if (navigator.clipboard && window.isSecureContext) { // navigator clipboard api method' return navigator.clipboard.writeText(textToCopy); } else { // text area method let textArea = document.createElement("textarea"); textArea.value = textToCopy; // make the textarea out of viewport textArea.style.position = "fixed"; textArea.style.left = "-999999px"; textArea.style.top = "-999999px"; document.body.appendChild(textArea); textArea.focus(); textArea.select(); return new Promise((res, rej) => { // here the magic happens document.execCommand('copy') ? res() : rej(); textArea.remove(); }); } } function copyToken() { copyToClipboard($scope.vm.form.token) .then(() => SweetAlert.swal($filter("translate")("api.successToApiTokenCopy")) ) .catch(() => SweetAlert.error($filter("translate")("api.failedToApiTokenCopy"))) } function find() { var conditions = { appName : $scope.vm.form.appName } Api.find($resourceProvider.getContent(conditions, $resourceProvider.getPageContent(0, 1))).then(function (result) { if (result.data.message.status === "success") { if (result.data.data != null) { $scope.vm.form.appName = result.data.data.appName; $scope.vm.form.token = result.data.data.token; } } else { SweetAlert.swal($filter("translate")("api.failedToApiTokenFind"), result.data.message.message, "error"); // "api 토큰 조회 실패" } }); } $scope.fn.find(); }]); });