Beispiel #1
0
// 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)
}