Created
July 28, 2016 03:42
-
-
Save giancarlosisasi/7b8977fcbbd7a96cf7441f15b603ecc5 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| class Api::V1::ArticlessController < ApplicationController | |
| before_action :authenticate, only: [:create, :update, :destroy] # usando el metodo de nuestro applicationController vericamos que el token sea valido y autentificamos al usuario (este sera asigando a nuestra variable @current_user) | |
| before_action :set_article, only: [:show ,:update, :destroy] # el tipo metodo para encontrar al articulo, esta demas explicarlo | |
| def index | |
| @articles = Article.all | |
| end | |
| def show | |
| end | |
| def create | |
| @article = @current_user.article.new(quiz_params) # ya tenemos el usuario identificado por lo que procedemos a crearle el articulo respectivo | |
| if @article.save | |
| render template: 'api/v1/articles/show' # hacemos un render a nuestra vista show para mostrar los datos del articulo creado | |
| else | |
| render json: { error: @article.errors }, status: :unprocessable_entity # si no pasan las validaciones entonces muestra los errors, deberia pasar pues nosotros no tenemos validaciones :| | |
| end | |
| end | |
| def update | |
| if @current_user == @article.user # aqui usamos el current_user para verificar que efectivamente el usuario sera el mismo que creó el articulo | |
| @article.update(quiz_params) # una vez se ha validado que el usuario es el dueño del articulo, procedemos a hacer el update | |
| render 'api/v1/quizzes/show' # mostramos los datos actualizados | |
| else | |
| render json: { error: 'you dont have permission' }, status: :unauthorized # si el usuario no es el mismo que creó el articulo, entonces se muestran los errores | |
| end | |
| end | |
| private | |
| def set_article | |
| @article = Article.find(params[:id]) # identificamos el articulo a actualizar o eliminar | |
| end | |
| def quiz_params | |
| params.require(:article).permit(:title, :body) # los tipicos strongs params, no hay mucho que explicar | |
| end | |
| end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment