Front End
목차
- 개요
- Angular JS
- Tools
- Swagger
- CSS
개요
NSight-Common
- NSight-API 호출을 위한 모듈
- Angular JS 프레임 워크 생성

Angular JS
- 2009년 Misko Hevery와 Adam Abrons 에 의해 개발된 MVC 웹프레임워크
- 간편한 데이터 바인딩을 통해 뷰 업데이트가 쉽다.
- 코드 패턴이 동일해 개인간 차이에 따른 결과물의 차이가 적다. 코드량이 감소한다.
- 기능적인 분리가 명확해 협업이 쉽다.
- 유지보수가 쉽다, 개발속도가 빠르다.
Angular JS
Angular JS


- One-Way Data Binding: 대부분 template System은 템플릿과 데이터를 조합하고 뷰를 구성하는 형태이다. 한번 구성된 뒤에는 데이터가 업데이트되더라도 자동으로 뷰에 적용되진 않는다. 마찬가지로 반대로 사용자에의해 뷰에서 변경이 있어도 데이터에 반영되지 못한다.
- Two-Way Data Binding: Angular에서는 기본으로 템플릿과 데이터로 뷰를 구성한 뒤에도 데이터와 뷰가 서로의 변경에 따라 업데이트가 되는 기능을 제공한다.
Angular JS
- ng-model="name": 데이터 바인딩을 위해 사용되는 지시자, 값으로 지정한 'name'은 모델의 이름으로 사용됨
- {{name}} : 데이터 출력을 위한 템플릿 표현식, ng-model과 바인딩되어 처리됨
Angular JS
- Controller : scope의 상태를 초기화 하거나 동작을 정의한다.

Angular JS
- scope: view 에 표시된 모델을 controller 에서 제어할수 있도록 해준다.

Angular JS
- scope: controller 마다 고유의 scope 영역을 지니며 계층구조를 가질수 있다.
angular App 에는 하나의 root scope 가 있으며 모든 scope 의 최상위에 있다.

Angular JS
- Service: 싱글톤 객체로 생성되며 뷰와 독립적인 비지니스 로직을 구성한다.
DI 를 통해 어떤 App 에서든 사용할수 있다.

Angular JS
- directive: custom tag 를 만들 수 있다.
tag의 element, attribute, class 단위로 적용 가능하다.
html template 도 적용 가능
Angular JS
- Nsight Mobile UI
Angular JS
- Module: Controller, Service, Directive 등으로 구성된 하나의 어플리케이션을 뜻한다.
Module은 다른 Module에 의해 사용될 수 있다.
Angular JS
- Jasmine : javascript 를 테스트 할수 있게 하는 프레임워크로 Angular JS 에서 Unit Test가능하게 한다.
angular.module('app', [])
.controller('PasswordController', function PasswordController($scope) {
$scope.password = '';
$scope.grade = function() {
var size = $scope.password.length;
if (size > 8) {
$scope.strength = 'strong';
} else if (size > 3) {
$scope.strength = 'medium';
} else {
$scope.strength = 'weak';
}
};
});describe('PasswordController', function() {
beforeEach(module('app'));
var $controller;
beforeEach(inject(function(_$controller_){
// The injector unwraps the underscores (_) from around the parameter names when matching
$controller = _$controller_;
}));
describe('$scope.grade', function() {
it('sets the strength to "strong" if the password length is >8 chars', function() {
var $scope = {};
var controller = $controller('PasswordController', { $scope: $scope });
$scope.password = 'longerthaneightchars';
$scope.grade();
expect($scope.strength).toEqual('strong');
});
});
});Tools
NPM ( Node Package Manager )
- Linux의 rpm처럼 repository에서 해당 모듈을 읽어 설치를 해주며 maven의 pom.xml처럼 pacakag.json 파일에 module간의 dependency에 따라서 모듈을 같이 설치한다. 중첩된 의존성을 지원함.
- 주로 빌드, 테스트, 최적화 도구를 설치할 때 이용함
Bower
- npm 처럼 동작하며 package.json과 동작이 비슷한 bower.json 파일이 존재한다. 중첩된 의존성을 지원하지 않는다.
- 주로 어플리케이션에서 쓰일 모듈들을 설치할때 이용함


Tools
NPM ( Node Package Manager )
- pacakage.json
{
"name": "nsight-common",
"dependencies": {
"gulp-sass": "^2.0.4",
"is_js": "^0.7.4",
"lodash": "^3.10.1",
"moment": "^2.10.6",
"node-sass": "^3.3.3",
"restangular": "^1.5.1"
},
"scripts": {
"watch": "gulp serve",
"docs": "cd docs && gulp docs:serve",
"test": "gulp test",
"dist": "gulp test && gulp && cd docs && gulp"
},
"devDependencies": {
"babel-core": "^5.8.22",
"babel-loader": "^5.3.2",
"browser-sync": "~1.7.1",
"chalk": "~0.5.1",
"conventional-changelog": "0.0.17",
"del": "~0.1.3",
"gulp": "~3.9.0",
"gulp-angular-filesort": "~1.0.4",
"gulp-angular-templatecache": "~1.4.2",
"gulp-autoprefixer": "~2.0.0",
"gulp-concat": "^2.4.3",
"gulp-consolidate": "~0.1.2",
"gulp-csso": "~0.2.9",
"gulp-filter": "~1.0.2",
"gulp-flatten": "~0.0.4",
"gulp-inject": "~1.0.2",
"gulp-jshint": "~1.9.0",
"gulp-karma": "~0.0.4",
"gulp-load-plugins": "~0.7.1",
"gulp-minify-html": "~0.1.7",
"gulp-ng-annotate": "^0.5.2",
"gulp-ngdocs": "^0.2.10",
"gulp-protractor": "~0.0.11",
"gulp-rename": "~1.2.0",
"gulp-replace": "~0.5.0",
"gulp-rev": "~2.0.1",
"gulp-rev-replace": "~0.3.1",
"gulp-sass": "^2.0.4",
"gulp-size": "~1.1.0",
"gulp-uglify": "~1.0.1",
"gulp-useref": "~1.0.2",
"gulp-util": "^3.0.6",
"gulp-webpack": "^1.5.0",
"http-proxy": "~1.7.0",
"jshint": "^2.8.0",
"jshint-loader": "^0.8.3",
"jshint-stylish": "~1.0.0",
"karma-coverage": "^0.2.7",
"karma-jasmine": "~0.3.1",
"karma-phantomjs-launcher": "~0.1.4",
"lodash": "^3.10.1",
"main-bower-files": "~2.4.0",
"protractor": "~1.4.0",
"q": "^1.4.1",
"request": "^2.65.0",
"require-dir": "~0.1.0",
"run-sequence": "^1.1.0",
"swagger-js-codegen": "^1.1.5",
"uglify-save-license": "~0.4.1",
"webpack": "^1.11.0",
"wiredep": "~2.2.0",
"wrench": "^1.5.8",
"pre-commit": "^1.1.2"
},
"pre-commit": [
"test"
],
"engines": {
"node": ">=0.10.0"
}
}
Tools
Bower
- bower.json
{
"name": "frontPush",
"version": "0.0.0",
"dependencies": {
"angular-animate": "~1.4.2",
"angular-cookies": "~1.4.2",
"angular-touch": "~1.4.2",
"angular-sanitize": "~1.4.2",
"angular-messages": "~1.4.2",
"angular-aria": "~1.4.2",
"jquery": "~1.11.3",
"restangular": "~1.5.1",
"angular-ui-router": "~0.2.15",
"bootstrap": "~3.3.5",
"angular-bootstrap": "~0.13.4",
"malarkey": "yuanqing/malarkey#~1.3.1",
"angular-toastr": "~1.5.0",
"moment": "~2.10.6",
"animate.css": "~3.4.0",
"angular": "~1.4.2",
"angular-smart-table": "~2.1.4",
"rdash-ui": "~1.0.1",
"angular-swagger": "~0.0.5",
"angular-swagger-ui": "~0.2.7",
"nsight-common": "git+http://yobi.navercorp.com/IT_DEV_Front/nsight-common#8cee0a898667ee784cc3f55612b89e9de3993fbf"
},
"devDependencies": {
"angular-mocks": "~1.4.2"
},
"overrides": {
"bootstrap": {
"main": [
"dist/css/bootstrap.css",
"dist/fonts/glyphicons-halflings-regular.eot",
"dist/fonts/glyphicons-halflings-regular.svg",
"dist/fonts/glyphicons-halflings-regular.ttf",
"dist/fonts/glyphicons-halflings-regular.woff",
"dist/fonts/glyphicons-halflings-regular.woff2"
]
}
},
"resolutions": {
"jquery": "~1.11.3",
"angular": "~1.4.2"
}
}

Tools
Yeoman
- bootstrap, angular route 등 기본적으로 많이 쓰이는 모듈들을 개발자가 따로 구성할 필요 없이 자동으로 구성 할수 있도록 도와준다.

Tools
Tools
Gulp
- Maven, Ant 와 같은 빌드 툴
- 코드 오류 확인, nodejs를 이용한 로컬서버 실행, 난독화 등 가능
gulp.src('./client/templates/*.jade')
.pipe(jade())
.pipe(gulp.dest('./build/templates'))
.pipe(minify())
.pipe(gulp.dest('./build/minified_templates'));- src() : 작업 대상 파일
- pipe(func()) : 작업 지정
- dest() : 작업 결과 파일을 쓸 곳
gulp.task('mytask', ['array', 'of', 'task', 'names'], function() {
// Do stuff
});- task() : 특정 작업들을 하나의 명령어로 묶을수 있다
Tools
Dgeni
- 문서 자동 생성 도구
/**
* @ngdoc service
* @name $nsightUser
* @module nsightUser
*
* @description
* User API 연동을 위한 서비스
*/
var serviceName = '$nsightUser';
class UserFactory{
constructor($log,
$q,
_,
Restangular,
NS_CONFIG)
{
'ngInject';
this._ = _;
this.$log = $log;
this.$q = $q;
this.Restangular = Restangular;
this.NS_CONFIG = NS_CONFIG;
}
/**
* @ngdoc service
* @name getUserByEmpNo
* @module nsightUser
*
* @description
* 사번으로 해당 직원 정보 조회
*
* @param {object} params
*
* ## Parameter
* | Key | Require | Default | Description |
* |:------|:-------:|:-------:|:--------------------------|
* | empNo | O | X | 사번 |
*
* @example
* <example module="app">
* <file name="index.html">
* <h2>JavaScript</h2>
* <pre>{{ result | nsPrettyJson}}</pre>
* </file>
* <file name="app.js">
* angular.module('app', [
* 'nsightCommon'
* ]).config(function($logProvider) {
* $logProvider.debugEnabled(false);
* }).run(function($rootScope, is, $nsightUser) {
* $nsightUser.getUserByEmpNo({
* empNo: 'NB10343'
* }).then(
* // Success
* function (data) {
* if (is.array(data)) {
* // Parsing data
* $rootScope.result = data;
* } else {
* $rootScope.result = '데이터가 없습니다.';
* }
* },
* // Error
* function () {
* $rootScope.result = '데이터를 가져오는 중 오류가 발생했습니다.';
* }
* );
* });
* </file>
* </example>
*
* ## Response
* <pre>
* [
* {
* "empNo": "NB90***",
* "empNm": "김우*",
* "cphNo": "010729*****",
* "email": "nb90*****.com",
* "deptCd": "ETCNB",
* "nttlNm": "A1410020076"
* }
* ]
* </pre>
*/
getUserByEmpNo(params) {
var empNo = params.empNo;
delete params.empNo;
var _this = this;
return this.Restangular.allUrl('employees' , this.NS_CONFIG.apiUrl)
.one('employee', empNo)
.get(_this._.extend({}, params));
}
Tools
Dgeni
- 문서 자동 생성 도구
Swagger
- API 문서를 정의하면 Server, Client 소스를 생성할수 있다.
Swagger
- Server : Annotation 기반으로 API Doc 작성
@RestController
@Api(value = "/users", description = "User API")
@RequestMapping("/users")
public class UserController {
@Autowired
UserManager userManager;
@ApiOperation(value = "select User", notes = "사용자 정보를 가져온다.")
@RequestMapping(method = RequestMethod.GET)
@ApiResponses(value = {
@ApiResponse(code = 200, message = "사용자 정보", response = User.class),
@ApiResponse(code = 404, message = "페이지가 없음"),
@ApiResponse(code = 500, message = "서버 에러", response = com.nbp.dm.Error.class)}
)
public List<User> selectUsers(
@ApiParam(value = "사용자 이름") @RequestParam(required = false) String empNm
, @ApiParam(value = "사용자 사번") @RequestParam(required = false) String empNo
, @ApiParam(value = "사용자 OS") @RequestParam(required = false) String type) {
return userManager.selectUsers(empNm, empNo, type);
}Swagger
- Client: Angular-client generator를 이용하여 Client API Code 생성 가능
Server API - Client API - API Doc 한번에 생성 할수 있다.
mustache 템플릿을 이용하여 생성됨
/**
* @ngdoc method
* @name $pushCommon#{{&methodName}}
* @methodOf $pushCommon
* @param {object} params
*
* ## Parameter
* | Key | Require | Default | Description |
* |:------|:-------:|:-------:|:--------------------------|
{{#parameters}}
{{#required}}
{{^isSingleton}} * | {{&camelCaseName}} | O | X | {{&description}}{{/isSingleton}} |
{{/required}}
{{^required}}
{{^isSingleton}} * | {{&camelCaseName}} | X | X | {{&description}}{{/isSingleton}} |
{{/required}}
{{/parameters}}
* @returns {Object} {{&summary}} promise 객체를 리턴한다.
*
*/
{{&className}}.prototype.{{&methodName}} = function(parameters){
if(parameters === undefined) {
parameters = {};
}
var deferred = {{#isNode}}Q{{/isNode}}{{^isNode}}$q{{/isNode}}.defer();
var domain = this.domain;
var path = '{{&path}}';
var body;
var queryParameters = {};
var headers = {};
var form = {};
{{#isSecure}}
if (this.token.isQuery) {
queryParameters[this.token.headerOrQueryName] = this.token.value;
} else if (this.token.headerOrQueryName) {
headers[this.token.headerOrQueryName] = this.token.value;
} else {
headers['Authorization'] = 'Bearer ' + this.token.value;
}
{{/isSecure}}
{{#parameters}}
{{#isQueryParameter}}
{{#isSingleton}}
queryParameters['{{&name}}'] = '{{&singleton}}';
{{/isSingleton}}
{{^isSingleton}}
{{#isPatternType}}
Object.keys(parameters).forEach(function(parameterName) {
if(new RegExp('{{&pattern}}').test(parameterName)){
queryParameters[parameterName] = parameters[parameterName];
}
});
{{/isPatternType}}
{{^isPatternType}}
if(parameters['{{&camelCaseName}}'] !== undefined){
queryParameters['{{&name}}'] = parameters['{{&camelCaseName}}'];
}
{{/isPatternType}}
{{/isSingleton}}
{{/isQueryParameter}}
{{#isPathParameter}}
path = path.replace('{{=<% %>=}}{<%&name%>}<%={{ }}=%>', parameters['{{&camelCaseName}}']);
{{/isPathParameter}}
{{#isHeaderParameter}}
{{#isSingleton}}
headers['{{&name}}'] = '{{&singleton}}';
{{/isSingleton}}
{{^isSingleton}}
if(parameters['{{&camelCaseName}}'] !== undefined){
headers['{{&name}}'] = parameters['{{&camelCaseName}}'];
}
{{/isSingleton}}
{{/isHeaderParameter}}
{{#isBodyParameter}}
if(parameters['{{&camelCaseName}}'] !== undefined){
body = parameters['{{&camelCaseName}}'];
}
{{/isBodyParameter}}
{{#isFormParameter}}
{{#isSingleton}}
form['{{&name}}'] = '{{&singleton}}';
{{/isSingleton}}
{{^isSingleton}}
if(parameters['{{&camelCaseName}}'] !== undefined){
form['{{&name}}'] = parameters['{{&camelCaseName}}'];
}
{{/isSingleton}}
{{/isFormParameter}}
{{#required}}
if(parameters['{{&camelCaseName}}'] === undefined){
deferred.reject(new Error('Missing required {{¶mType}} parameter: {{&camelCaseName}}'));
return deferred.promise;
}
{{/required}}
{{/parameters}}
if(parameters.$queryParameters) {
Object.keys(parameters.$queryParameters)
.forEach(function(parameterName){
var parameter = parameters.$queryParameters[parameterName];
queryParameters[parameterName] = parameter;
});
}
{{> request}}
return deferred.promise;
};
/*jshint -W069 */
/*global angular:false */
angular.module('nsightCommon')
.factory('$nsightCommonSwagger', ['$q', '$http', '$rootScope', function($q, $http, $rootScope) {
'use strict';
/**
* @ngdoc service
@name $pushCommon
* @module pushCommon
*
* @description
* description
*/
var $nsightCommonSwagger = (function() {
function $nsightCommonSwagger(options, cache) {
var domain = (typeof options === 'object') ? options.domain : options;
this.domain = typeof(domain) === 'string' ? domain : '';
if (this.domain.length === 0) {
throw new Error('Domain parameter must be specified as a string.');
}
cache = cache || ((typeof options === 'object') ? options.cache : cache);
this.cache = cache;
}
$nsightCommonSwagger.prototype.$on = function($scope, path, handler) {
var url = domain + path;
$scope.$on(url, function() {
handler();
});
return this;
};
$nsightCommonSwagger.prototype.$broadcast = function(path) {
var url = domain + path;
//cache.remove(url);
$rootScope.$broadcast(url);
return this;
};
$nsightCommonSwagger.transformRequest = function(obj) {
var str = [];
for (var p in obj) {
var val = obj[p];
if (angular.isArray(val)) {
val.forEach(function(val) {
str.push(encodeURIComponent(p) + "=" + encodeURIComponent(val));
});
} else {
str.push(encodeURIComponent(p) + "=" + encodeURIComponent(val));
}
}
return str.join("&");
};
/**
* @ngdoc method
* @name $pushCommon#selectAllLogsUsingGET
* @methodOf $pushCommon
* @param {object} params
*
* ## Parameter
* | Key | Require | Default | Description |
* |:------|:-------:|:-------:|:--------------------------|
* | rows | O | X | 한 페이지에 데이터 갯수 |
* | page | O | X | 페이지 번호 |
* | startTime | X | X | 시작시간 |
* | endTime | X | X | 끝시간 |
* | senderType | X | X | 전송 타입 |
* | solutionType | X | X | 전송한 솔루션 |
* | message | X | X | 메세지 |
* | from | X | X | 전화번호 |
* @returns {Object} Log를 가져옵니다. promise 객체를 리턴한다.
*
*/
$nsightCommonSwagger.prototype.selectAllLogsUsingGET = function(parameters) {
if (parameters === undefined) {
parameters = {};
}
var deferred = $q.defer();
var domain = this.domain;
var path = '/log';
var body;
var queryParameters = {};
var headers = {};
var form = {};
if (parameters['rows'] !== undefined) {
queryParameters['rows'] = parameters['rows'];
}
if (parameters['rows'] === undefined) {
deferred.reject(new Error('Missing required parameter: rows'));
return deferred.promise;
}
if (parameters['page'] !== undefined) {
queryParameters['page'] = parameters['page'];
}
if (parameters['page'] === undefined) {
deferred.reject(new Error('Missing required parameter: page'));
return deferred.promise;
}
if (parameters['startTime'] !== undefined) {
queryParameters['startTime'] = parameters['startTime'];
}
if (parameters['endTime'] !== undefined) {
queryParameters['endTime'] = parameters['endTime'];
}
if (parameters['senderType'] !== undefined) {
queryParameters['senderType'] = parameters['senderType'];
}
if (parameters['solutionType'] !== undefined) {
queryParameters['solutionType'] = parameters['solutionType'];
}
if (parameters['message'] !== undefined) {
queryParameters['message'] = parameters['message'];
}
if (parameters['from'] !== undefined) {
queryParameters['from'] = parameters['from'];
}
if (parameters.$queryParameters) {
Object.keys(parameters.$queryParameters)
.forEach(function(parameterName) {
var parameter = parameters.$queryParameters[parameterName];
queryParameters[parameterName] = parameter;
});
}
var url = domain + path;
var cached = parameters.$cache && parameters.$cache.get(url);
if (cached !== undefined && parameters.$refresh !== true) {
deferred.resolve(cached);
return deferred.promise;
}
var options = {
timeout: parameters.$timeout,
method: 'GET',
url: url,
params: queryParameters,
data: body,
headers: headers
};
if (Object.keys(form).length > 0) {
options.data = form;
options.headers['Content-Type'] = 'application/x-www-form-urlencoded';
options.transformRequest = $nsightCommonSwagger.transformRequest;
}
$http(options)
.success(function(data, status, headers, config) {
deferred.resolve(data);
if (parameters.$cache !== undefined) {
parameters.$cache.put(url, data, parameters.$cacheItemOpts ? parameters.$cacheItemOpts : {});
}
})
.error(function(data, status, headers, config) {
deferred.reject({
status: status,
headers: headers,
config: config,
body: data
});
});
return deferred.promise;
};
/**
* @ngdoc method
* @name $pushCommon#selectAllSolutionsUsingGET
* @methodOf $pushCommon
* @param {object} params
*
* ## Parameter
* | Key | Require | Default | Description |
* |:------|:-------:|:-------:|:--------------------------|
* @returns {Object} Sender목록을 가져옵니다. promise 객체를 리턴한다.
*
*/
$nsightCommonSwagger.prototype.selectAllSolutionsUsingGET = function(parameters) {
if (parameters === undefined) {
parameters = {};
}
var deferred = $q.defer();
var domain = this.domain;
var path = '/log/solutions';
var body;
var queryParameters = {};
var headers = {};
var form = {};
if (parameters.$queryParameters) {
Object.keys(parameters.$queryParameters)
.forEach(function(parameterName) {
var parameter = parameters.$queryParameters[parameterName];
queryParameters[parameterName] = parameter;
});
}
var url = domain + path;
var cached = parameters.$cache && parameters.$cache.get(url);
if (cached !== undefined && parameters.$refresh !== true) {
deferred.resolve(cached);
return deferred.promise;
}
var options = {
timeout: parameters.$timeout,
method: 'GET',
url: url,
params: queryParameters,
data: body,
headers: headers
};
if (Object.keys(form).length > 0) {
options.data = form;
options.headers['Content-Type'] = 'application/x-www-form-urlencoded';
options.transformRequest = $nsightCommonSwagger.transformRequest;
}
$http(options)
.success(function(data, status, headers, config) {
deferred.resolve(data);
if (parameters.$cache !== undefined) {
parameters.$cache.put(url, data, parameters.$cacheItemOpts ? parameters.$cacheItemOpts : {});
}
})
.error(function(data, status, headers, config) {
deferred.reject({
status: status,
headers: headers,
config: config,
body: data
});
});
return deferred.promise;
};
/**
* @ngdoc method
* @name $pushCommon#pushAllMessageUsingGET
* @methodOf $pushCommon
* @param {object} params
*
* ## Parameter
* | Key | Require | Default | Description |
* |:------|:-------:|:-------:|:--------------------------|
* | message | X | X | 메세지 |
* | empNo | X | X | 대상 사번, 입력안하면 전체에게 보낸다 |
* | type | X | X | OS타입, 특정 OS에게만 보내고 싶을때 기입 |
* @returns {Object} 푸시 메세지를 보냅니다. promise 객체를 리턴한다.
*
*/
$nsightCommonSwagger.prototype.pushAllMessageUsingGET = function(parameters) {
if (parameters === undefined) {
parameters = {};
}
var deferred = $q.defer();
var domain = this.domain;
var path = '/push';
var body;
var queryParameters = {};
var headers = {};
var form = {};
if (parameters['message'] !== undefined) {
queryParameters['message'] = parameters['message'];
}
if (parameters['empNo'] !== undefined) {
queryParameters['empNo'] = parameters['empNo'];
}
if (parameters['type'] !== undefined) {
queryParameters['type'] = parameters['type'];
}
if (parameters.$queryParameters) {
Object.keys(parameters.$queryParameters)
.forEach(function(parameterName) {
var parameter = parameters.$queryParameters[parameterName];
queryParameters[parameterName] = parameter;
});
}
var url = domain + path;
var cached = parameters.$cache && parameters.$cache.get(url);
if (cached !== undefined && parameters.$refresh !== true) {
deferred.resolve(cached);
return deferred.promise;
}
var options = {
timeout: parameters.$timeout,
method: 'GET',
url: url,
params: queryParameters,
data: body,
headers: headers
};
if (Object.keys(form).length > 0) {
options.data = form;
options.headers['Content-Type'] = 'application/x-www-form-urlencoded';
options.transformRequest = $nsightCommonSwagger.transformRequest;
}
$http(options)
.success(function(data, status, headers, config) {
deferred.resolve(data);
if (parameters.$cache !== undefined) {
parameters.$cache.put(url, data, parameters.$cacheItemOpts ? parameters.$cacheItemOpts : {});
}
})
.error(function(data, status, headers, config) {
deferred.reject({
status: status,
headers: headers,
config: config,
body: data
});
});
return deferred.promise;
};
/**
* @ngdoc method
* @name $pushCommon#selectUsersUsingGET
* @methodOf $pushCommon
* @param {object} params
*
* ## Parameter
* | Key | Require | Default | Description |
* |:------|:-------:|:-------:|:--------------------------|
* | empNm | X | X | 사용자 이름 |
* | empNo | X | X | 사용자 사번 |
* | type | X | X | 사용자 OS |
* @returns {Object} 사용자 정보를 가져온다. promise 객체를 리턴한다.
*
*/
$nsightCommonSwagger.prototype.selectUsersUsingGET = function(parameters) {
if (parameters === undefined) {
parameters = {};
}
var deferred = $q.defer();
var domain = this.domain;
var path = '/users';
var body;
var queryParameters = {};
var headers = {};
var form = {};
if (parameters['empNm'] !== undefined) {
queryParameters['empNm'] = parameters['empNm'];
}
if (parameters['empNo'] !== undefined) {
queryParameters['empNo'] = parameters['empNo'];
}
if (parameters['type'] !== undefined) {
queryParameters['type'] = parameters['type'];
}
if (parameters.$queryParameters) {
Object.keys(parameters.$queryParameters)
.forEach(function(parameterName) {
var parameter = parameters.$queryParameters[parameterName];
queryParameters[parameterName] = parameter;
});
}
var url = domain + path;
var cached = parameters.$cache && parameters.$cache.get(url);
if (cached !== undefined && parameters.$refresh !== true) {
deferred.resolve(cached);
return deferred.promise;
}
var options = {
timeout: parameters.$timeout,
method: 'GET',
url: url,
params: queryParameters,
data: body,
headers: headers
};
if (Object.keys(form).length > 0) {
options.data = form;
options.headers['Content-Type'] = 'application/x-www-form-urlencoded';
options.transformRequest = $nsightCommonSwagger.transformRequest;
}
$http(options)
.success(function(data, status, headers, config) {
deferred.resolve(data);
if (parameters.$cache !== undefined) {
parameters.$cache.put(url, data, parameters.$cacheItemOpts ? parameters.$cacheItemOpts : {});
}
})
.error(function(data, status, headers, config) {
deferred.reject({
status: status,
headers: headers,
config: config,
body: data
});
});
return deferred.promise;
};
/**
* @ngdoc method
* @name $pushCommon#insertUsersUsingPOST
* @methodOf $pushCommon
* @param {object} params
*
* ## Parameter
* | Key | Require | Default | Description |
* |:------|:-------:|:-------:|:--------------------------|
* | user | O | X | user |
* @returns {Object} 사용자 정보를 입력한다. promise 객체를 리턴한다.
*
*/
$nsightCommonSwagger.prototype.insertUsersUsingPOST = function(parameters) {
if (parameters === undefined) {
parameters = {};
}
var deferred = $q.defer();
var domain = this.domain;
var path = '/users';
var body;
var queryParameters = {};
var headers = {};
var form = {};
if (parameters['user'] !== undefined) {
body = parameters['user'];
}
if (parameters['user'] === undefined) {
deferred.reject(new Error('Missing required parameter: user'));
return deferred.promise;
}
if (parameters.$queryParameters) {
Object.keys(parameters.$queryParameters)
.forEach(function(parameterName) {
var parameter = parameters.$queryParameters[parameterName];
queryParameters[parameterName] = parameter;
});
}
var url = domain + path;
var options = {
timeout: parameters.$timeout,
method: 'POST',
url: url,
params: queryParameters,
data: body,
headers: headers
};
if (Object.keys(form).length > 0) {
options.data = form;
options.headers['Content-Type'] = 'application/x-www-form-urlencoded';
options.transformRequest = $nsightCommonSwagger.transformRequest;
}
$http(options)
.success(function(data, status, headers, config) {
deferred.resolve(data);
if (parameters.$cache !== undefined) {
parameters.$cache.put(url, data, parameters.$cacheItemOpts ? parameters.$cacheItemOpts : {});
}
})
.error(function(data, status, headers, config) {
deferred.reject({
status: status,
headers: headers,
config: config,
body: data
});
});
return deferred.promise;
};
/**
* @ngdoc method
* @name $pushCommon#deleteUsersUsingDELETE
* @methodOf $pushCommon
* @param {object} params
*
* ## Parameter
* | Key | Require | Default | Description |
* |:------|:-------:|:-------:|:--------------------------|
* | empNo | X | X | 사용자 사번 |
* @returns {Object} 사번으로 사용자 정보를 삭제한다. promise 객체를 리턴한다.
*
*/
$nsightCommonSwagger.prototype.deleteUsersUsingDELETE = function(parameters) {
if (parameters === undefined) {
parameters = {};
}
var deferred = $q.defer();
var domain = this.domain;
var path = '/users';
var body;
var queryParameters = {};
var headers = {};
var form = {};
if (parameters['empNo'] !== undefined) {
queryParameters['empNo'] = parameters['empNo'];
}
if (parameters.$queryParameters) {
Object.keys(parameters.$queryParameters)
.forEach(function(parameterName) {
var parameter = parameters.$queryParameters[parameterName];
queryParameters[parameterName] = parameter;
});
}
var url = domain + path;
var options = {
timeout: parameters.$timeout,
method: 'DELETE',
url: url,
params: queryParameters,
data: body,
headers: headers
};
if (Object.keys(form).length > 0) {
options.data = form;
options.headers['Content-Type'] = 'application/x-www-form-urlencoded';
options.transformRequest = $nsightCommonSwagger.transformRequest;
}
$http(options)
.success(function(data, status, headers, config) {
deferred.resolve(data);
if (parameters.$cache !== undefined) {
parameters.$cache.put(url, data, parameters.$cacheItemOpts ? parameters.$cacheItemOpts : {});
}
})
.error(function(data, status, headers, config) {
deferred.reject({
status: status,
headers: headers,
config: config,
body: data
});
});
return deferred.promise;
};
return $nsightCommonSwagger;
})();
return $nsightCommonSwagger;
}]);Copy of Angular JS
By Praveen Poonia
Copy of Angular JS
- 1,111