Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F1429473
EventSubmitter.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
EventSubmitter.js
View Options
/**
* @constructor
* @class EventSubmitter
* @classdesc Adapts the background queue for the JavaScript Metrics Platform Client (JS MPC).
*
* The class is temporary. It will be removed after Data Products have tested and verified the use
* of the `DefaultEventSubmitter` class provided by the JS MPC soon (see [T375749][1]).
*
* Before [T375749][1]:
* [<img src="./images/before.png" width="100%">][2]
*
* After [T375749][1]:
* [<img src="./images/after.png" width="100%">][3]
*
* See [Metrics Platform](https://wikitech.wikimedia.org/wiki/Metrics_Platform) on Wikitech.
*
* [0]: https://gitlab.wikimedia.org/repos/data-engineering/metrics-platform/-/tree/65abcf66a5327a60b541e9d1729de86895526060/js
* [1]: https://phabricator.wikimedia.org/T375749
* [2]: https://mermaid.live/edit#pako:eNqFUkFqwzAQ_IrYU0KdPECHQHF6aKmh4EOh-KLYE0XUklx5lbaE_L2K3TRNwVS3HWZ2hxkdqPYNSFKPtwhXY22UDspWTqS3xh6t7xDEYrW6EXd7OH70WhunpbDvS3wDyz5urOHZfJT95o3Kh1IUT7kUBTiYus9bkxhSXstG0knw51KBxqhn82qu5PeOkayy8U5KDc59Aj74lhNnExn9lJ0fN_-cHaZysMgIZ7cDOpuLid3TGcGlhCOmXC0uaUtBGVkEq0yTqjmcBBXxDhYVJdvUYKtiyxVV7pioKrIvP11NkkNERrFrFJ-bJLlVbZ_QTrkX7y9zCpV9KMb6h1-QUfBR78Y1xy-X6bVX
* [3]: https://mermaid.live/edit#pako:eNp1kcFqwzAQRH9F7Kmhdj5Ah0Cxe2ipoeBDoPiiWBtFxJJcaZW2hPx7FatJmkB002ieZtjdQ-8kAoeAnxFtj7UWygvTWZZOjTsc3IielYvFI3veoaU3p5S2ijPzNcc_YR7iymh6mGXsvy-Try1r3ivOGiSv-1ANOjk4v8ay6QjcJDUotVjqrb7CXyxhqkraWc4VUuWS8E1PlDyrSBju1Tm3uY0tzy81rkUcaCLbqSShP_Wd1Hufl5ehcQYFGPRGaJkmvD8CHdAGDXaQ0kHmlA46e0hWEcm1P7YHTj5iAXGUgk4LAb4WQ0jqKOyHc5d7mg053-QtTssswLuoNvmbwy-FbqER
*
* @param {string} eventGateUri
* @param {Function} enqueue
* @param {boolean} isDebugMode
*/
function
EventSubmitter
(
eventGateUri
,
enqueue
,
isDebugMode
)
{
this
.
eventGateUri
=
eventGateUri
;
this
.
enqueue
=
enqueue
;
this
.
isDebugMode
=
isDebugMode
;
}
/**
* Enqueues the event to be submitted to the event ingestion service.
*
* @param {Object} eventData
*/
EventSubmitter
.
prototype
.
submitEvent
=
function
(
eventData
)
{
const
eventGateUri
=
this
.
eventGateUri
;
if
(
eventGateUri
)
{
mw
.
eventLog
.
enqueue
(
()
=>
{
try
{
navigator
.
sendBeacon
(
eventGateUri
,
JSON
.
stringify
(
eventData
)
);
}
catch
(
e
)
{
// Ignore. See T86680, T273374, and T308311.
}
}
);
this
.
onSubmitEvent
(
eventData
);
}
};
/**
* Notifies the user that an event has been enqueued for submission if they
* have enabled
*
* @param {Object} eventData
*/
EventSubmitter
.
prototype
.
onSubmitEvent
=
function
(
eventData
)
{
if
(
this
.
isDebugMode
)
{
mw
.
track
(
'eventlogging.eventSubmitDebug'
,
{
streamName
:
eventData
.
meta
.
stream
,
eventData
:
eventData
}
);
}
};
module
.
exports
=
EventSubmitter
;
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, May 16, 17:37 (10 h, 10 m)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
23/20/562ef9910e7ca4fbb726edf288a8
Default Alt Text
EventSubmitter.js (2 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment