@@ -2,13 +2,13 @@ import elmah_io from "../../elmah_io.app.mjs";
22import constants from "../common/constants.mjs" ;
33import { DEFAULT_POLLING_SOURCE_TIMER_INTERVAL } from "@pipedream/platform" ;
44
5- const QUERY = "isNew:true AND ( severity:Error OR severity:Fatal) " ;
5+ const QUERY = "severity:Error OR severity:Fatal" ;
66
77export default {
88 name : "New Error" ,
9- version : "0.0.3 " ,
9+ version : "0.0.4 " ,
1010 key : "elmah_io-new-error" ,
11- description : "Emit new event on each new error" ,
11+ description : "Emit new event on each new error. [See the documentation](https://api.elmah.io/swagger/index.html#/Messages/Messages_GetAll) " ,
1212 type : "source" ,
1313 dedupe : "unique" ,
1414 props : {
@@ -26,20 +26,25 @@ export default {
2626 "logId" ,
2727 ] ,
2828 } ,
29+ alert : {
30+ type : "alert" ,
31+ alertType : "info" ,
32+ content : "Note: This source requires that your api key have the `logs_read` and `messages_read` permissions." ,
33+ } ,
2934 } ,
3035 methods : {
3136 emitEvent ( event ) {
3237 this . $emit ( event , {
3338 id : event . id ,
34- summary : `New error with id ${ event . id } ` ,
39+ summary : `New error with ID ${ event . id } ` ,
3540 ts : Date . parse ( event . dateTime ) ,
3641 } ) ;
3742 } ,
3843 _setLastEventDatetime ( datetime ) {
3944 this . db . set ( "lastEventDatetime" , datetime ) ;
4045 } ,
4146 _getLastEventDatetime ( ) {
42- this . db . get ( "lastEventDatetime" ) ;
47+ return this . db . get ( "lastEventDatetime" ) ;
4348 } ,
4449 } ,
4550 hooks : {
@@ -52,11 +57,17 @@ export default {
5257 } ,
5358 } ) ;
5459
60+ if ( ! messages . length ) {
61+ return ;
62+ }
63+
5564 messages . forEach ( this . emitEvent ) ;
65+ this . _setLastEventDatetime ( messages [ 0 ] . dateTime ) ;
5666 } ,
5767 } ,
5868 async run ( ) {
5969 let page = 0 ;
70+ const lastEventDatetime = this . _getLastEventDatetime ( ) ;
6071
6172 while ( page >= 0 ) {
6273 const messages = await this . elmah_io . getMessages ( {
@@ -65,10 +76,18 @@ export default {
6576 pageIndex : page ,
6677 pageSize : constants . DEFAULT_PAGE_SIZE ,
6778 query : QUERY ,
79+ from : lastEventDatetime
80+ ? lastEventDatetime
81+ : undefined ,
6882 } ,
6983 } ) ;
7084
85+ if ( ! messages . length ) {
86+ return ;
87+ }
88+
7189 messages . forEach ( this . emitEvent ) ;
90+ this . _setLastEventDatetime ( messages [ 0 ] . dateTime ) ;
7291
7392 page ++ ;
7493
0 commit comments