Files
OpenNoodl/packages/noodl-viewer-react/src/nodes/std-library/user/requestpasswordreset.js
Michael Cartner b9c60b07dc Initial commit
Co-Authored-By: Eric Tuvesson <eric.tuvesson@gmail.com>
Co-Authored-By: mikaeltellhed <2311083+mikaeltellhed@users.noreply.github.com>
Co-Authored-By: kotte <14197736+mrtamagotchi@users.noreply.github.com>
Co-Authored-By: Anders Larsson <64838990+anders-topp@users.noreply.github.com>
Co-Authored-By: Johan  <4934465+joolsus@users.noreply.github.com>
Co-Authored-By: Tore Knudsen <18231882+torekndsn@users.noreply.github.com>
Co-Authored-By: victoratndl <99176179+victoratndl@users.noreply.github.com>
2024-01-26 11:52:55 +01:00

108 lines
2.6 KiB
JavaScript

'use strict';
const { Node, EdgeTriggeredInput } = require('@noodl/runtime');
const UserService = require('./userservice');
var RequestPasswordResetNodeDefinition = {
name: 'net.noodl.user.RequestPasswordReset',
docs: 'https://docs.noodl.net/nodes/data/user/request-password-reset',
displayNodeName: 'Request Password Reset',
category: 'Cloud Services',
color: 'data',
deprecated: true, // Use cloud functions
initialize: function () {
var internal = this._internal;
},
getInspectInfo() {},
outputs: {
success: {
type: 'signal',
displayName: 'Success',
group: 'Events'
},
failure: {
type: 'signal',
displayName: 'Failure',
group: 'Events'
},
error: {
type: 'string',
displayName: 'Error',
group: 'Error',
getter: function () {
return this._internal.error;
}
}
},
inputs: {
send: {
displayName: 'Do',
group: 'Actions',
valueChangedToTrue: function () {
this.scheduleRequestPasswordReset();
}
},
email: {
type: 'string',
displayName: 'Email',
group: 'General',
set: function (value) {
this._internal.email = value;
}
}
},
methods: {
setError: function (err) {
this._internal.error = err;
this.flagOutputDirty('error');
this.sendSignalOnOutput('failure');
if (this.context.editorConnection) {
this.context.editorConnection.sendWarning(
this.nodeScope.componentOwner.name,
this.id,
'user-send-email-verification-warning',
{
message: err,
showGlobally: true
}
);
}
},
clearWarnings() {
if (this.context.editorConnection) {
this.context.editorConnection.clearWarning(
this.nodeScope.componentOwner.name,
this.id,
'user-send-email-verification-warning'
);
}
},
scheduleRequestPasswordReset: function () {
const internal = this._internal;
if (this.sendScheduled === true) return;
this.sendScheduled = true;
this.scheduleAfterInputsHaveUpdated(() => {
this.sendScheduled = false;
UserService.instance.requestPasswordReset({
email: this._internal.email,
success: () => {
this.sendSignalOnOutput('success');
},
error: (e) => {
this.setError(e);
}
});
});
}
}
};
module.exports = {
node: RequestPasswordResetNodeDefinition,
setup: function (context, graphModel) {}
};