func ListPostsHandler(r render.Render, appx *appx.Datastore, location middleware.RequestLocation) { response := model.Response{ ErrorCode: http.StatusOK, Message: []string{}, Data: nil, } posts := []*model.Post{} err := appx.Query(model.Posts.All(location.Country)).Results(&posts) response.Data = resources.FromPostResource(posts) if err != nil && err != datastore.Done { log.Printf("Error: %+v", err) response.ErrorCode = http.StatusInternalServerError response.Message = append(response.Message, err.Error()) } r.JSON(200, response) }
func LoginHandler(r render.Render, user model.User, appx *appx.Datastore) { response := model.Response{ ErrorCode: http.StatusOK, Message: []string{}, Data: nil, } isValid, validationErr := user.IsValid() if !isValid { response.ErrorCode = http.StatusBadRequest response.Message = validationErr } else { err := appx.Save(&user) if err != nil { log.Printf("Error: %v", err) response.ErrorCode = http.StatusInternalServerError response.Message = append(response.Message, err.Error()) } else { response.Data = user } } r.JSON(200, response) }
func CreatePostHandler(r render.Render, post model.Post, appx *appx.Datastore, location middleware.RequestLocation) { response := model.Response{ ErrorCode: http.StatusOK, Message: []string{}, Data: nil, } post.CarPlate = strings.ToUpper(post.CarPlate) post.Country = location.Country post.CreatedAt = time.Now() isValid, validationErr := post.IsValid(location.Country) if !isValid { response.ErrorCode = http.StatusBadRequest response.Message = validationErr } else { err := appx.Save(&post) if err != nil { log.Printf("Error: %+v", err) response.ErrorCode = http.StatusInternalServerError response.Message = append(response.Message, err.Error()) } else { postResource := &resources.PostResource{} postResource.From(post) response.Data = postResource } } r.JSON(200, response) }
func FlagPostHandler(r render.Render, params martini.Params, appx *appx.Datastore) { postId := params["post_id"] response := model.Response{ ErrorCode: http.StatusOK, Message: []string{}, Data: nil, } post := model.Post{} post.SetEncodedKey(postId) err := appx.Load(&post) fmt.Print("aqui") if err != nil { fmt.Print("not found") fmt.Print(err) response.Message = []string{err.Error()} response.ErrorCode = http.StatusBadRequest } else { fmt.Print("found") fmt.Print(err) post.Flagged = true err = appx.Save(&post) if err != nil { fmt.Print("save problem") fmt.Print(err) response.Message = []string{err.Error()} response.ErrorCode = http.StatusInternalServerError } else { postResource := &resources.PostResource{} postResource.From(post) response.Data = postResource } } r.JSON(200, response) }