package main

import (
	"gopkg.in/kataras/iris.v6"
	"gopkg.in/kataras/iris.v6/adaptors/httprouter"
)

// User bind struct
type User struct {
	Firstname string `json:"firstname"`
	Lastname  string `json:"lastname"`
	Age       int    `json:"age"`
}

func main() {
	app := iris.New()
	app.Adapt(httprouter.New())

	app.Post("/decode", func(ctx *iris.Context) {
		var user User
		ctx.ReadJSON(&user)

		ctx.Writef("%s %s is %d years old!", user.Firstname, user.Lastname, user.Age)
	})

	app.Get("/encode", func(ctx *iris.Context) {
		peter := User{
			Firstname: "John",
			Lastname:  "Doe",
			Age:       25,
		}

		ctx.JSON(iris.StatusOK, peter)
	})

	app.Listen(":8080")
}