// CreatePerson ... create new person func (c PersonController) CreatePerson(res http.ResponseWriter, req *http.Request) { r := render.New(render.Options{}) person := new(models.Person) errs := binding.Bind(req, person) if errs.Handle(res) { r.JSON(res, 422, errs.Error()) return } bindingErr := person.Validate(req, errs) if bindingErr != nil { r.JSON(res, 422, bindingErr.Error()) return } // save to database p := models.Person{ BaseModel: c.BaseModel, FirstName: person.FirstName, MiddleName: person.MiddleName, LastName: person.LastName, Title: person.Title, Gender: person.Gender, Occupation: person.Occupation, DateOfBirth: person.DateOfBirth, Addresses: person.Addresses, Contacts: person.Contacts, PersonIDType: person.PersonIDType, CountryOfOriginID: person.CountryOfOriginID, CountryOfResidenceID: person.CountryOfResidenceID} err := c.DataStore.SaveDatabaseObject(&p) if err != nil { panic(err) } // render response r.JSON(res, 200, p) }