From 7e8d37c782d013d2400f981ecbbb21bc7206003d Mon Sep 17 00:00:00 2001 From: crufter Date: Tue, 16 Nov 2021 14:46:44 +0000 Subject: [PATCH] Commit from GitHub Actions (Generate Clients & Examples) --- clients/go/user/user.go | 38 +++++++++++++++++++ clients/ts/package.json | 2 +- examples/event/publish/go/publishAnEvent.go | 2 +- .../curl/sendPasswordResetEmail.sh | 9 +++++ .../go/sendPasswordResetEmail.go | 22 +++++++++++ .../node/sendPasswordResetEmail.js | 17 +++++++++ 6 files changed, 88 insertions(+), 2 deletions(-) create mode 100755 examples/user/sendPasswordResetEmail/curl/sendPasswordResetEmail.sh create mode 100755 examples/user/sendPasswordResetEmail/go/sendPasswordResetEmail.go create mode 100755 examples/user/sendPasswordResetEmail/node/sendPasswordResetEmail.js diff --git a/clients/go/user/user.go b/clients/go/user/user.go index 61f37bb..b74b0cd 100755 --- a/clients/go/user/user.go +++ b/clients/go/user/user.go @@ -53,6 +53,19 @@ func (t *UserService) ReadSession(request *ReadSessionRequest) (*ReadSessionResp return rsp, t.client.Call("user", "ReadSession", request, rsp) } +// Reset password with the code sent by the "SendPasswordResetEmail" endoint. +func (t *UserService) ResetPassword(request *ResetPasswordRequest) (*ResetPasswordResponse, error) { + rsp := &ResetPasswordResponse{} + return rsp, t.client.Call("user", "ResetPassword", request, rsp) +} + +// Send an email with a verification code to reset password. +// Call "ResetPassword" endpoint once user provides the code. +func (t *UserService) SendPasswordResetEmail(request *SendPasswordResetEmailRequest) (*SendPasswordResetEmailResponse, error) { + rsp := &SendPasswordResetEmailResponse{} + return rsp, t.client.Call("user", "SendPasswordResetEmail", request, rsp) +} + // Send a verification email // to the user being signed up. Email from will be from 'support@m3o.com', // but you can provide the title and contents. @@ -170,6 +183,31 @@ type ReadSessionResponse struct { Session *Session `json:"session"` } +type ResetPasswordRequest struct { + // The code from the verification email + Code string `json:"code"` + // confirm new password + ConfirmPassword string `json:"confirmPassword"` + // the new password + NewPassword string `json:"newPassword"` +} + +type ResetPasswordResponse struct { +} + +type SendPasswordResetEmailRequest struct { + Email string `json:"email"` + // Display name of the sender for the email. Note: the email address will still be 'support@m3o.com' + FromName string `json:"fromName"` + Subject string `json:"subject"` + // Text content of the email. Don't forget to include the string '$code' which will be replaced by the real verification link + // HTML emails are not available currently. + TextContent string `json:"textContent"` +} + +type SendPasswordResetEmailResponse struct { +} + type SendVerificationEmailRequest struct { Email string `json:"email"` FailureRedirectUrl string `json:"failureRedirectUrl"` diff --git a/clients/ts/package.json b/clients/ts/package.json index 5860137..e1e7f3a 100644 --- a/clients/ts/package.json +++ b/clients/ts/package.json @@ -79,5 +79,5 @@ "prepare": "npm run build" }, "types": "index.d.ts", - "version": "1.0.741" + "version": "1.0.747" } \ No newline at end of file diff --git a/examples/event/publish/go/publishAnEvent.go b/examples/event/publish/go/publishAnEvent.go index fd9dc17..a6a3b0e 100755 --- a/examples/event/publish/go/publishAnEvent.go +++ b/examples/event/publish/go/publishAnEvent.go @@ -12,9 +12,9 @@ func PublishAnEvent() { eventService := event.NewEventService(os.Getenv("MICRO_API_TOKEN")) rsp, err := eventService.Publish(&event.PublishRequest{ Message: map[string]interface{}{ + "type": "signup", "user": "john", "id": "1", - "type": "signup", }, Topic: "user", }) diff --git a/examples/user/sendPasswordResetEmail/curl/sendPasswordResetEmail.sh b/examples/user/sendPasswordResetEmail/curl/sendPasswordResetEmail.sh new file mode 100755 index 0000000..69e0ba2 --- /dev/null +++ b/examples/user/sendPasswordResetEmail/curl/sendPasswordResetEmail.sh @@ -0,0 +1,9 @@ +curl "http://localhost:8080/user/SendPasswordResetEmail" \ +-H "Content-Type: application/json" \ +-H "Authorization: Bearer $MICRO_API_TOKEN" \ +-d '{ + "email": "joe@example.com", + "fromName": "Awesome Dot Com", + "subject": "Password reset", + "textContent": "Hi there,\n click here to reset your password: myapp.com/reset/code?=$code" +}' \ No newline at end of file diff --git a/examples/user/sendPasswordResetEmail/go/sendPasswordResetEmail.go b/examples/user/sendPasswordResetEmail/go/sendPasswordResetEmail.go new file mode 100755 index 0000000..209fbef --- /dev/null +++ b/examples/user/sendPasswordResetEmail/go/sendPasswordResetEmail.go @@ -0,0 +1,22 @@ +package example + +import ( + "fmt" + "os" + + "github.com/micro/services/clients/go/user" +) + +// Send an email with a verification code to reset password. +// Call "ResetPassword" endpoint once user provides the code. +func SendPasswordResetEmail() { + userService := user.NewUserService(os.Getenv("MICRO_API_TOKEN")) + rsp, err := userService.SendPasswordResetEmail(&user.SendPasswordResetEmailRequest{ + Email: "joe@example.com", + FromName: "Awesome Dot Com", + Subject: "Password reset", + TextContent: `Hi there, + click here to reset your password: myapp.com/reset/code?=$code`, + }) + fmt.Println(rsp, err) +} diff --git a/examples/user/sendPasswordResetEmail/node/sendPasswordResetEmail.js b/examples/user/sendPasswordResetEmail/node/sendPasswordResetEmail.js new file mode 100755 index 0000000..e132892 --- /dev/null +++ b/examples/user/sendPasswordResetEmail/node/sendPasswordResetEmail.js @@ -0,0 +1,17 @@ +const { UserService } = require("m3o/user"); + +// Send an email with a verification code to reset password. +// Call "ResetPassword" endpoint once user provides the code. +async function sendPasswordResetEmail() { + let userService = new UserService(process.env.MICRO_API_TOKEN); + let rsp = await userService.sendPasswordResetEmail({ + email: "joe@example.com", + fromName: "Awesome Dot Com", + subject: "Password reset", + textContent: + "Hi there,\n click here to reset your password: myapp.com/reset/code?=$code", + }); + console.log(rsp); +} + +sendPasswordResetEmail();