프로젝트

일반

사용자정보

통계
| 개정판:

root / HServer / 00.Server / 00.Program / routers / agent.js @ 140

이력 | 보기 | 이력해설 | 다운로드 (5.93 KB)

1 39 HKM
var express = require('express');
2
var mongoose = require('mongoose');
3
var dbCenter = require('../db_modules/dbCenter');
4
var mySocket = require('../socket.io_modules/mySocket');
5
//#region [ database ]
6
7
var agentSchema = mongoose.Schema({
8
    mac: String,       // 맥
9
    ip: String,        // 아이피
10
    state: String,    // 상태 / play | down | ready
11
12
    contents: String,  // 컨텐츠
13
    connect: String,
14
15
    lastUpdateDate: String,
16
    files: [],
17
    updatafiles: [],
18
    deletefiles: [],
19
20
    starts: [],
21
    parameters: []
22
});
23
24
//var agentModel = mongoose.model('agent', agentSchema); // agent model 정의
25
26
var agentContorl = {};
27
28
agentContorl.createCollection = function(err){
29
    console.log('[Agent] createcollection 호출');
30
    if(err) {
31
        console.log('[Agent] createcollection err : ' + err);
32
    } else {
33
        console.log('[Agent] collection 생성 성공');
34
    }
35
};
36
37
agentContorl.test = function(){
38
    console.log('agent test');
39
}
40
41
//#endregion
42
43
//#region [ variable ]
44
var collectionName = 'agent';
45
//#endregion
46
47
//#region [ API ]
48
49
const router = express.Router();
50
51
// udp로 받은 신호를 반환해주는 post
52
router.post('/',function(req, res){
53
    console.log('[agent] agent 등록 시도');
54
55
    dbCenter.findClient(collectionName, req.body.mac, function(err, result){
56
        if(err){
57
            console.log('[agent find] err : ' + err.toString());
58
            res.send({'result':null});
59
            res.end();
60
            return;
61
        } else {
62
            if(result){
63
                console.log('[agent find] 결과를 찾았습니다.');
64
65
                dbCenter.findAll('contents', function(err, docs){
66
                    if(err){
67
                        console.log('[agent][getAll] err : ' + err.toSring());
68
69
                    } else {
70
                        console.log('[agent][getAll] 전체 데이터 호출 성공');
71
                        console.log(docs);
72
73
                        result.files = docs[0].files;
74
75
                        console.log(result.files);
76
                        res.send({'result':result});
77
                        res.end();
78
                    }
79
                });
80
81
            } else {
82
                console.log('[agent find] 결과가 없습니다. 새로운 것입니다.');
83
                dbCenter.add(collectionName, req.body, function(err){
84
                    if(err){
85
                        console.log('[agent add] err : ' + err.toString());
86
                        res.send({'result':null});
87
                        res.end();
88
                        return;
89
                    } else {
90
                        console.log('[agent add] 성공');
91
                        res.send({'result':req.body});
92
                        res.end();
93
                    }
94
                });
95
            }
96
        }
97
    });
98
});
99
100
// 전체 조회
101
router.get('/', function(req, res){
102
    console.log('[agent] 전체조회 호출');
103
104
    dbCenter.findAll(collectionName, function(err, docs){
105
        if(err){
106
            console.log('[agent][getAll] err : ' + err.toSring());
107
            res.send({'result':'fail'});
108
            res.end();
109
        } else {
110
            console.log('[agent][getAll] 전체 데이터 호출 성공');
111
            res.send(docs);
112
            res.end();
113
        }
114
    });
115
});
116
117
// 특정 정보로 조회
118
router.get('/:mac', function(req, res){
119
    console.log('[agent] get/:mac');
120
});
121
122
// 수정
123
router.put('/:mac', function(req, res){
124
    console.log('[agent] put/:' + req.params.mac);
125
126
    dbCenter.findClient(collectionName, req.params.mac, function(err, result){
127
        if(err){
128
            console.log('[agent put] err : ' + err.toString());
129
            res.send({'result':'err'});
130
            res.end();
131
        } else {
132
            if(result){
133
                console.log('[agent put] 결과를 찾았습니다.');
134
                console.log('result : ' + JSON.stringify(result));
135
136
                console.log(req.body);
137
138
                // 바뀔 데이터
139
                var setdata = {};
140
141
                setdata.contents = req.body.contents;
142
                setdata.files = req.body.files;
143
144
                setdata.starts = req.body.starts;
145
                setdata.parameters = req.body.parameters;
146
                setdata.lastUpdateDate = req.body.lastUpdateDate;
147
148
149
                setdata.updateFiles = req.body.updataFiles;
150
                setdata.deleteFiles = req.body.deleteFiles;
151
152
                dbCenter.modifiy(collectionName, result, setdata, function(err, result){
153
                    if(err){
154
                        console.log('[agnet put] : err : ' + err.toString());
155
                        res.send({'result':'fail'});
156
                        res.end();
157
                    } else {
158
159
                        mySocket.modifyData(result);
160
161
                        res.send({'result':'success'});
162
                        res.end();
163
                    }
164
                });
165
166
            } else {
167
                console.log('[agent put] 결과를 찾지못했습니다.');
168
                res.send({'result':'not found'});
169
                res.end();
170
            }
171
        }
172
    });
173
});
174
175
// 삭제
176
router.delete('/:mac', function(req, res){
177
    console.log('[agent delete/:mac');
178
});
179
180
router.post('/test', function(req, res){
181
    console.log('req : ' + req.body._ip );
182
183
    //var agentModel = mongoose.model('agent', agentSchema); // agent model 정의
184
185
    var agentModel ;
186
187
    dbCenter.findAll(agentModel, function(err, docs){
188
        if(err){
189
            console.log('[agent][getAll] err : ' + err.toString());
190
            res.send({'result':'fail'});
191
            res.end();
192
        } else {
193
            console.log('[agent][getAll] 전체 데이터 호출 성공');
194
            res.send(docs);
195
            res.end();
196
        }
197
    });
198
});
199
200
//#endregion
201
202
exports.default = router;