Advertisement
vitareinforce

ews

Feb 24th, 2023
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.78 KB | None | 0 0
  1. import * as schedule from 'node-schedule'
  2. import axios from 'axios'
  3. // import * as db from './db.js'
  4. import * as wa from './sendwa.js'
  5. import * as dotenv from 'dotenv'
  6. import moment from 'moment'
  7.  
  8. dotenv.config()
  9.  
  10. // Define the function you want to run
  11. function cekIssue() {
  12. console.log('Mulai Mengecek Issue')
  13. const yesterday = moment().subtract(1, 'day');
  14. const headers = {
  15. 'Content-type': 'application/json',
  16. 'X-Redmine-API-Key': process.env.API_KEY
  17. }
  18. axios.get(process.env.API_URL + "/issues.json", { headers })
  19. .then(function (response) {
  20. if(response.status == 200) {
  21. for(let i = 0; i < response.data.issues.length; i++) {
  22. if(response.data.issues[i].status.is_closed == false) {
  23. if(response.data.issues[i].due_date != null) {
  24. console.log("mengecek tugas " + response.data.issues[i].subject)
  25. console.log("deadline " + response.data.issues[i].due_date)
  26. let duedate = moment(response.data.issues[i].due_date)
  27. if (duedate.isSameOrAfter(yesterday, 'day')) {
  28. if(response.data.issues[i].assigned_to != null) {
  29. console.log(process.env.AI_NAME + ' mengingatkan ' + response.data.issues[i].assigned_to['name'] + "(ID:" + response.data.issues[i].assigned_to['id'] + ") mohon segera selesaikan tugas " + response.data.issues[i].subject + "dan close jika sudah selesai.");
  30. // extract nomor hp dari user
  31. axios.get(process.env.API_URL + "/users/" + response.data.issues[i].assigned_to['id'] + ".json", { headers })
  32. .then(function (response_users) {
  33. if(response_users.status == 200) {
  34. if(response_users.data.user.custom_fields != null) {
  35. let nomor_hp = response_users.data.user.custom_fields[0].value
  36. wa.send(nomor_hp, 'Redmine', process.env.AI_NAME + ' mengingatkan ' + response.data.issues[i].assigned_to['name'] + " (ID:" + response.data.issues[i].assigned_to['id'] + ") mohon segera selesaikan tugas " + response.data.issues[i].subject + " dan close jika sudah selesai.");
  37. }
  38. }
  39. })
  40. .catch(function (error_users) {
  41. console.log(error_users)
  42. })
  43. }
  44. }
  45. }
  46. }
  47. }
  48. }
  49. console.log('Selesai Mengecek Issue')
  50. })
  51. .catch(function (error) {
  52. console.log(error)
  53. })
  54. }
  55.  
  56. const scheduledTime = new Date()
  57. scheduledTime.setHours(process.env.SET_JAM)
  58. scheduledTime.setMinutes(process.env.SET_MENIT)
  59.  
  60. schedule.scheduleJob({ hour: scheduledTime.getHours(), minute: scheduledTime.getMinutes() }, function() {
  61. cekIssue()
  62. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement