init.js 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261
  1. ;(function () {
  2. const
  3. request = require('request'),
  4. transfer = require('transfer'),
  5. app_cache = require('app-cache'),
  6. EventEmitter = require('myevents'),
  7. { api: apiURL, server_id,sso} = require('sys-config');
  8. class api {
  9. constructor() {}
  10. user_info(access_token){
  11. return csRrequest('get',`/api/oauth/profile?token=${access_token}`,sso.host)
  12. }
  13. item_list(pid, key = '', ext = '') {
  14. if (!pid) {
  15. pid = '0';
  16. }
  17. return baseRequest('get', `/v2/api/item?pid=${pid}&key=${encodeURI(key)}&ext=${ext}`);
  18. }
  19. page_list(pid, key = '', ext = '', limit = 100, page = 1) {
  20. if (!pid) {
  21. pid = '0';
  22. }
  23. return baseRequest('get', `/v2/api/item_pagination?pid=${pid}&key=${encodeURI(key)}&ext=${ext}&limit=${limit}&page=${page}`);
  24. }
  25. item_detail(id) {
  26. return baseRequest('get', `/v2/api/item/${id}/detail`);
  27. }
  28. // recycle() {
  29. // return baseRequest('get', `/v2/api/item/recycle`);
  30. // }
  31. recycle(page, limit) {
  32. return baseRequest('get', `/v2/api/item/recycle_pagination?page=${page}&limit=${limit}`);
  33. }
  34. recovery(_ids, same_files) {
  35. return baseRequest('post', `/v2/api/item/recovery`, { item_ids: _ids, same_files: same_files });
  36. }
  37. check_recovery(_ids) {
  38. return baseRequest('post', `/v2/api/item/check_recovery`, { item_ids: _ids });
  39. }
  40. add_item(d) {
  41. return baseRequest('post', '/v2/api/item', d);
  42. }
  43. update_item(d) {
  44. return baseRequest('put', '/v2/api/item', d);
  45. }
  46. rename(new_name, item_id) {
  47. return baseRequest('post', `/v2/api/item/rename`, { name: new_name, _id: item_id });
  48. }
  49. check_rename(item) {
  50. return baseRequest('post', `/v2/api/item/check_rename`, item);
  51. }
  52. delete_item(_ids, is_remove = 1) { //is_remove 0 彻底删除 、1丢到垃圾桶
  53. return baseRequest('post', `/v2/api/item/delete`, { item_ids: _ids, is_remove: is_remove });
  54. }
  55. recycleClear() {
  56. return baseRequest('post', `/v2/api/recycle/clear`);
  57. }
  58. folder(pid, _ids) {
  59. if (!pid) {
  60. pid = '0';
  61. }
  62. return baseRequest('post', `/v2/api/item/${pid}/folder`, { item_ids: _ids });
  63. }
  64. branchs(pid = '83000001') {
  65. return baseRequest('get', `/v2/api/branchs/${server_id}/${pid}`);
  66. }
  67. branchUser(branch_id) {
  68. return baseRequest('get', `/v2/api/user/${server_id}/${branch_id}`);
  69. }
  70. branchUserData(branch_id){
  71. return baseRequest('get', `/v2/api/share/userTotal?serverID=${server_id}&branchIDs=${branch_id}`);
  72. }
  73. share_file(files, users, depts) {
  74. return baseRequest('post', `/v2/api/share`, {
  75. share_file: files,
  76. users: users,
  77. depts: depts
  78. });
  79. }
  80. share_package_files(share_id) {
  81. return baseRequest('get', `/v2/api/share/package/${share_id}`);
  82. }
  83. cancel_share(share_id) {
  84. return baseRequest('delete', `/v2/api/${share_id}/share`);
  85. }
  86. user_share_files() {
  87. return baseRequest('get', `/v2/api/share`);
  88. }
  89. share_to_me(type = 'all') {
  90. return baseRequest('get', `/v2/api/share/to/me?type=${type}`);
  91. }
  92. move_file(file_ids, pid, is_copy = false) {
  93. return baseRequest('post', !is_copy ? `/v2/api/item/move_file/to/${pid}` : `/v2/api/item/copy_file/to/${pid}`, { item_ids: file_ids, is_copy: is_copy });
  94. }
  95. analysis_add(share_file, item_id = '', type = 'down') {
  96. return baseRequest('post', `/v2/api/shareAnalysis`, {
  97. file_name: share_file.name,
  98. share_id: share_file._id,
  99. share_user: share_file.user,
  100. item_id: item_id,
  101. type: type,
  102. user: {
  103. name: app_cache.cur_user.displayName,
  104. id: app_cache.cur_user.id,
  105. login_name: app_cache.cur_user.loginName
  106. }
  107. });
  108. }
  109. use_space() {
  110. return baseRequest('get', `/v2/api/use_space`);
  111. }
  112. login(username, password) {
  113. return Q((resolve, reject) => {
  114. request.post({
  115. 'url': apiURL + `/v2/api/login`,
  116. json: {
  117. username: username,
  118. password: password,
  119. server_id: server_id
  120. }
  121. }, function (err, d) {
  122. if (err || d.statusCode != 200) {
  123. resolve({
  124. ret: -1,
  125. msg: '网络错误'
  126. });
  127. } else {
  128. typeof d.body == 'string' ? resolve(JSON.parse(d.body)) : resolve((d.body));
  129. }
  130. }).on('error', function (err) {
  131. EventEmitter.emit('ajax_errorx');
  132. });
  133. });
  134. }
  135. }
  136. let csRrequest = (method, url, apiHost) => {
  137. let base = request.defaults({
  138. headers: {
  139. 'content-type': 'application/json'
  140. }
  141. });
  142. url = apiHost + url;
  143. console.log(url);
  144. return Q((resolve,reject) => {
  145. base[method](url,success).on('error',function (...err) {
  146. EventEmitter.emit('ajax_errorx', err);
  147. resolve({
  148. ret: 0,
  149. net: -1,
  150. msg: '网络错误'
  151. });
  152. })
  153. function success(err, d) {
  154. if(err || d.statusCode != 200){
  155. EventEmitter.emit('ajax_errorx', err, d);
  156. resolve({
  157. ret: 0,
  158. msg: '网络错误'
  159. });
  160. }else{
  161. let data = typeof d.body == 'string' ? (JSON.parse(d.body)) : ((d.body));
  162. data.ret = 1;
  163. resolve(data);
  164. }
  165. }
  166. })
  167. }
  168. let baseRequest = (method, url, data) => {
  169. if (!app_cache.cur_user) {
  170. //未登录
  171. return;
  172. }
  173. let base = request.defaults({
  174. headers: {
  175. 'authorization': `Basic ${app_cache.cur_user.authorization}`,
  176. 'content-type': 'application/json'
  177. }
  178. });
  179. return Q((resolve, reject) => {
  180. if (url != '/v2/api/item' && url != '/v2/api/use_space') { //批量上传造成一直有个加载框
  181. // EventEmitter.emit('ajax_before');
  182. }
  183. url = apiURL + url;
  184. console.error(url);
  185. if (!data)
  186. base[method](url, success).on('error', function (...err) {
  187. EventEmitter.emit('ajax_errorx', err);
  188. resolve({
  189. ret: 0,
  190. net: -1,
  191. msg: '网络错误'
  192. });
  193. });
  194. else
  195. base[method]({
  196. 'url': url,
  197. json: data
  198. }, success).on('error', function (err) {
  199. resolve({
  200. ret: 0,
  201. net: -1,
  202. msg: '网络错误'
  203. });
  204. // EventEmitter.emit('ajax_error');
  205. });
  206. function success(err, d) {
  207. // EventEmitter.emit('ajax_complete');
  208. // if (d.statusCode == 401) {
  209. // resolve({
  210. // ret: 0,
  211. // msg: '身份验证失败'
  212. // });
  213. // return;
  214. // }console.log(err, d);
  215. if (err || d.statusCode != 200) {
  216. EventEmitter.emit('ajax_errorx', err, d);
  217. resolve({
  218. ret: 0,
  219. msg: '网络错误'
  220. });
  221. } else {
  222. let data = typeof d.body == 'string' ? (JSON.parse(d.body)) : ((d.body));
  223. data.ret = 1;
  224. resolve(data);
  225. }
  226. }
  227. });
  228. }
  229. let Q = (caller) => {
  230. let promise = new Promise(function (resolve, reject) {
  231. caller(resolve, reject);
  232. });
  233. promise.catch(() => {
  234. // EventEmitter.emit('ajax_complete');
  235. // EventEmitter.emit('ajax_error');
  236. });
  237. return promise;
  238. }
  239. transfer.api = new api();
  240. }());