uAdmin Tutorial Part 11 - Inserting and Saving the RecordΒΆ
Create a file named add_friend.go inside the api folder with the following codes below:
package api
import (
"net/http"
// Specify the username that you used inside github.com folder
"github.com/username/todo/models"
"github.com/uadmin/uadmin"
)
// AddFriendAPIHandler !
func AddFriendAPIHandler(w http.ResponseWriter, r *http.Request) {
// Fetch data from Friend DB
friend := models.Friend{}
// Set the parameters of Name, Email, Password, and Nationality such that where nationality is
// equivalent to the following:
// 1 - Chinese
// 2 - Filipino
// 3 - Others
friendName := r.FormValue("name")
friendEmail := r.FormValue("email")
friendPassword := r.FormValue("password")
friendNationalityRaw := r.FormValue("nationality")
// Convert the nationality to an integer.
friendNationality, err := strconv.Atoi(friendNationalityRaw)
// Validate if the friendName variable is empty.
if friendName == "" {
uadmin.ReturnJSON(w, r, map[string]interface{}{
"status": "error",
"err_msg": "Name is required.",
})
return
}
// Store input into the Name, Email, and Password fields
friend.Name = friendName
friend.Email = friendEmail
friend.Password = friendPassword
friend.Nationality = models.Nationality(friendNationality)
// Save input in the Friend model
err = uadmin.Save(&friend)
if err != nil {
// Return an error message if the database did not save properly.
uadmin.ReturnJSON(w, r, map[string]interface{}{
"status": "error",
"err_msg": "Error saving the database : " + err.Error(),
})
return
}
// Return JSON to the client.
uadmin.ReturnJSON(w, r, map[string]interface{}{
"status": "ok",
})
}
Finally, add the following pieces of code in the api.go shown below. This will establish a communication between the AddFriendHandler and the Handler.
func Handler(w http.ResponseWriter, r *http.Request) {
// Some codes contained in this part
// --------------------- ADD THIS CODE ---------------------
if strings.HasPrefix(r.URL.Path, "/add_friend") {
AddFriendAPIHandler(w, r)
return
}
// ---------------------------------------------------------
}
Now run your application. In order to insert the information in the Friend model, put the ? symbol after /api/add_friend path which means WHERE in SQL, followed by the parameter name. Set the value of each parameter to store your input and save into the Friend model. & symbol is equivalent to AND in SQL.
- name = Allen
- email = allen@gmail.com
- password = 123456
- nationality = 3
http://localhost:8080/api/add_friend?name=Allen&email=allen@gmail.com&password=123456&nationality=3
{
"status": "ok"
}
Go back to the Friend model. You will notice that Allen was added inside it.
Congrats, now you know how to insert and save a record to the model in the API using multiple parameters.
See API Reference for more examples.
Click here to view our progress so far.
In the next part, we will discuss about designing a table in HTML and setting up a template file.