Skip to content

Instantly share code, notes, and snippets.

@shemul
Last active June 13, 2020 17:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save shemul/f47e752d51045af596c0779facc67367 to your computer and use it in GitHub Desktop.
Save shemul/f47e752d51045af596c0779facc67367 to your computer and use it in GitHub Desktop.
package server
import (
base64 "encoding/base64"
"encoding/json"
"github.com/RichardKnop/machinery/v1"
"github.com/RichardKnop/machinery/v1/tasks"
"github.com/gofiber/fiber"
"github.com/shemul/go-machinery/utils"
task "github.com/shemul/go-machinery/tasks"
)
func StartServer(taskserver *machinery.Server) {
app := fiber.New()
app.Post("/send_email", func(ctx *fiber.Ctx) {
p := new(task.Payload)
if err := ctx.BodyParser(p); err != nil {
utils.Logger.Fatal(err)
}
reqJSON, err := json.Marshal(p)
if err != nil {
utils.Logger.Error(err.Error())
}
b64EncodedReq := base64.StdEncoding.EncodeToString([]byte(reqJSON))
task := tasks.Signature{
Name: "send_email",
Args: []tasks.Arg{
{
Type: "string",
Value: b64EncodedReq,
},
},
}
res, err := taskserver.SendTask(&task)
if err != nil {
utils.Logger.Error(err.Error())
}
ctx.JSON(&fiber.Map{
"task_uuid": res.GetState().TaskUUID,
})
})
app.Listen("localhost:5000")
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment