Commit 142ebf36 authored by Rafael Ravedutti's avatar Rafael Ravedutti

Merge branch 'develop' into 'master'

Develop

See merge request !87
parents f90975d5 5784e4d5
Pipeline #19014 failed with stages
in 3 minutes and 35 seconds
......@@ -2,5 +2,10 @@ AGENDADOR_SECRET_KEY_BASE=6e58e1f0e806642a44a504672e22665606100838a0c80c8b3b6766
AGENDADOR_API_DB_USER=agendador
AGENDADOR_API_DB_PASSWORD=123mudar
AGENDADOR_REDIS_PASSWORD=123mudar
MAIL_USERNAME: agendador
MAIL_PASSWORD: 123mudar
\ No newline at end of file
MAIL_USERNAME=agendador
MAIL_PASSWORD=123mudar
MX_SERVER=mx.inf.ufpr.br
MX_PORT=587
MAIL_DOMAIN=inf.ufpr.br
AGENDADOR_apiHost=localhost
AGENDADOR_apiPort=3000
This diff is collapsed.
......@@ -106,7 +106,9 @@ module Api::V1
redirect_to(url)
else
render_edit_error
url = gen_url(params[:redirect_url] + "/invalid")
redirect_to(url)
end
end
......@@ -114,7 +116,7 @@ module Api::V1
def gen_url(url, params = {})
uri = URI(url)
res = "http://#{uri.path}"
res = "#{uri}"
query = [uri.query, params.to_query].reject(&:blank?).join('&')
res += "?#{query}"
res += "##{uri.fragment}" if uri.fragment
......@@ -128,5 +130,9 @@ module Api::V1
recoverable.reset_password_token = token if recoverable && recoverable.reset_password_token.present?
recoverable
end
def render_edit_error
render_error(404, "Token not found or expired!")
end
end
end
......@@ -39,7 +39,8 @@ module Api::V1
# Check if uploads are not null for current citizen
if @uploads.nil?
render json: {
errors: ["You don't have the permission to view citizen uploads."]
# errors: ["You don't have the permission to view citizen uploads."]
errors: ["Você não tem permissão para visualizar os uploads de cidadão!"]
}, status: 403
return
end
......@@ -79,7 +80,8 @@ module Api::V1
authorize @upload_id, :show?
rescue
render json: {
errors: ["You're not allowed to view this citizen upload log."]
# errors: ["You're not allowed to view this citizen upload log."]
errors: ["Você não tem permissão para visualizar este log de upload de cidadão!"]
}, status: 403
return
end
......@@ -90,7 +92,8 @@ module Api::V1
# If log not found, displays not found message
if path.nil?
render json: {
errors: ["Log not found for current task."]
# errors: ["Log not found for current task."]
errors: ["Log não encontrado para tarefa atual!"]
}, status: 404
# Otherwise, send file
......@@ -134,7 +137,8 @@ module Api::V1
authorize upload_object, :create?
rescue
render json: {
errors: ["You're not allowed to perform citizen uploads."]
# errors: ["You're not allowed to perform citizen uploads."]
errors: ["Você não tem permissão para fazer upload de cidadão!"]
}, status: 403
return
end
......@@ -146,11 +150,13 @@ module Api::V1
CitizenUploadWorker.perform_async(upload_object.id, content, permission, city_id)
render json: {
errors: ["Citizens scheduled to be imported!"]
# errors: ["Citizens scheduled to be imported!"]
errors: ["Cidadãos agendados para serem importados!"]
}, status: 201
else
render json: {
errors: ["Undefined citizens to import."]
# errors: ["Undefined citizens to import."]
errors: ["Cidadãos para importar indefinidos!"]
}, status: 404
end
end
......
......@@ -19,7 +19,8 @@ module Api::V1
include HasPolicies
require 'csv'
before_action :set_citizen, only: [:picture, :show, :update, :destroy]
before_action :set_citizen, only: [:picture, :show, :update,
:change_password, :destroy]
# GET /citizens
def index
......@@ -28,7 +29,8 @@ module Api::V1
if @citizens.nil?
render json: {
errors: ["You don't have the permission to view citizens."]
# errors: ["You don't have the permission to view citizens."]
errors: ["Você não tem permissão para listar cidadãos!"]
}, status: 403
else
response = Hash.new
......@@ -40,12 +42,12 @@ module Api::V1
end
end
# GET /citizens/1/picture
def picture
if @citizen.nil?
render json: {
errors: ["User #{params[:id]} does not exist."]
# errors: ["User #{params[:id]} does not exist."]
errors: ["Usuário #{params[:id]} não existe!"]
}, status: 404
else
# Allow request only if the citizen is reachable from current user
......@@ -53,7 +55,8 @@ module Api::V1
authorize @citizen, :show_picture?
rescue
render json: {
errors: ["You're not allowed to view this citizen."]
# errors: ["You're not allowed to view this citizen."]
errors: ["Você não tem permissão para visualizar este cidadão!"]
}, status: 403
return
end
......@@ -62,7 +65,8 @@ module Api::V1
if path.nil?
render json: {
errors: ["User #{params[:id]} does not have a picture."]
# errors: ["User #{params[:id]} does not have a picture."]
errors: ["Usuário #{params[:id]} não possui uma foto!"]
}, status: 404
else
if not params[:size].nil?
......@@ -96,7 +100,8 @@ module Api::V1
authorize @citizen, :schedule?
rescue
render json: {
errors: ["You're not allowed to schedule for this citizen."]
# errors: ["You're not allowed to schedule for this citizen."]
errors: ["Você não tem permissão para agendar para este cidadão!"]
}, status: 403
return
end
......@@ -107,12 +112,12 @@ module Api::V1
end
end
# GET /citizens/1
def show
if @citizen.nil?
render json: {
errors: ["User #{params[:id]} does not exist."]
# errors: ["User #{params[:id]} does not exist."]
errors: ["Usuário #{params[:id]} não existe!"]
}, status: 404
else
# Allow request only if the citizen is reachable from current user
......@@ -120,7 +125,8 @@ module Api::V1
authorize @citizen, :show?
rescue
render json: {
errors: ["You're not allowed to view this citizen."]
# errors: ["You're not allowed to view this citizen."]
errors: ["Você não tem permissão para visualizar este cidadão!"]
}, status: 403
return
end
......@@ -129,7 +135,6 @@ module Api::V1
end
end
# POST /citizens
def create
success = false
......@@ -183,7 +188,8 @@ module Api::V1
def update
if @citizen.nil?
render json: {
errors: ["User #{params[:id]} does not exist."]
# errors: ["User #{params[:id]} does not exist."]
errors: ["Usuário #{params[:id]} não existe!"]
}, status: 404
else
if @citizen.update(citizen_params)
......@@ -194,12 +200,12 @@ module Api::V1
end
end
# DELETE /citizens/1
def destroy
if @citizen.nil?
render json: {
errors: ["User #{params[:id]} does not exist."]
# errors: ["User #{params[:id]} does not exist."]
errors: ["Usuário #{params[:id]} não existe!"]
}, status: 404
else
# Allow request only if the citizen is reachable from current user
......@@ -207,7 +213,8 @@ module Api::V1
authorize @citizen, :deactivate?
rescue
render json: {
errors: ["You're not allowed to deativate this citizen."]
# errors: ["You're not allowed to deactivate this citizen."]
errors: ["Você não tem permissão para desativar este cidadão!"]
}, status: 403
return
end
......@@ -224,6 +231,66 @@ module Api::V1
end
end
# PUT /citizens/1/change_password
def change_password
if @citizen.nil?
render json: {
# errors: ["User #{params[:id]} does not exist."]
errors: ["Usuário #{params[:id]} não existe!"]
}, status: 404
else
# Allow request only if the citizen is reachable from current user
begin
authorize @citizen, :change_password?
rescue
render json: {
# errors: ["You're not allowed to change password for this citizen."]
errors: ["Você não tem permissão para mudar a senha deste cidadão!"]
}, status: 403
return
end
if @citizen.email.present?
render json: {
# errors: ["This citizen has an e-mail registered, use it for resetting the password!"]
errors: ["Este cidadão possui e-mail registrado, use-o para resetar sua senha!"]
}, status: 401
return
end
@account = Account.find(@citizen.account_id)
birth_date = @citizen.birth_date.strftime("%Y-%m-%d")
if(
@account.uid != params[:cpf] or
birth_date != params[:birth_date]
)
render json: {
# errors: ["CPF and birth date do not match!"]
errors: ["CPF ou data de nascimento inválidos!"]
}, status: 403
return
end
if params[:password] != params[:password_confirmation]
render json: {
# errors: ["Passwords do not match!"]
errors: ["As senhas informadas devem ser iguais!"]
}, status: 403
return
end
@account.password = params[:password]
@account.password_confirmation = params[:password_confirmation]
if @account.save!
render json: @citizen
else
render json: @citizen.errors, status: :unprocessable_entity
end
end
end
private
# Use callbacks to share common setup or constraints between actions.
......
......@@ -29,7 +29,8 @@ module Api::V1
if @city_halls.nil?
render json: {
errors: ["You don't have the permission to view city halls."]
# errors: ["You don't have the permission to view city halls."]
errors: ["Você não tem permissão para listar prefeituras!"]
}, status: 403
return
else
......@@ -47,14 +48,16 @@ module Api::V1
def show
if @city_hall.nil?
render json: {
errors: ["City hall #{params[:id]} does not exist."]
# errors: ["City hall #{params[:id]} does not exist."]
errors: ["Prefeitura #{params[:id]} não existe!"]
}, status: 404
else
begin
authorize @city_hall, :show?
rescue
render json: {
errors: ["You don't have the permission to view this city hall."]
# errors: ["You don't have the permission to view this city hall."]
errors: ["Você não tem permissão para visualizar esta prefeitura!"]
}, status: 403
return
end
......@@ -72,7 +75,8 @@ module Api::V1
authorize @city_hall, :create?
rescue
render json: {
errors: ["You don't have the permission to create city halls."]
# errors: ["You don't have the permission to create city halls."]
errors: ["Você não tem permissão para criar prefeituras!"]
}, status: 403
return
end
......@@ -89,14 +93,16 @@ module Api::V1
def update
if @city_hall.nil?
render json: {
errors: ["City hall #{params[:id]} does not exist."]
# errors: ["City hall #{params[:id]} does not exist."]
errors: ["Prefeitura #{params[:id]} não existe!"]
}, status: 404
else
begin
authorize @city_hall, :update?
rescue
render json: {
errors: ["You don't have the permission to create city halls."]
# errors: ["You don't have the permission to update city halls."]
errors: ["Você não tem permissão para atualizar prefeituras!"]
}, status: 403
return
end
......@@ -113,14 +119,16 @@ module Api::V1
def destroy
if @city_hall.nil?
render json: {
errors: ["City hall #{params[:id]} does not exist."]
# errors: ["City hall #{params[:id]} does not exist."]
errors: ["Prefeitura #{params[:id]} não existe!"]
}, status: 404
else
begin
authorize @city_hall, :destroy?
rescue
render json: {
errors: ["You're not allowed to destroy this city hall."]
# errors: ["You're not allowed to destroy this city hall."]
errors: ["Você não tem permissão para remover esta prefeitura!"]
}, status: 403
return
end
......@@ -139,7 +147,8 @@ module Api::V1
def picture
if @city_hall.nil?
render json: {
errors: ["City hall #{params[:id]} does not exist."]
# errors: ["City hall #{params[:id]} does not exist."]
errors: ["Prefeitura #{params[:id]} não existe!"]
}, status: 404
else
# Allow request only if the citizen is reachable from current user
......@@ -147,7 +156,8 @@ module Api::V1
authorize @city_hall, :picture?
rescue
render json: {
errors: ["You're not allowed to view this city hall."]
# errors: ["You're not allowed to view this city hall."]
errors: ["Você não tem permissão para visualizar esta prefeitura!"]
}, status: 403
return
end
......@@ -156,7 +166,8 @@ module Api::V1
if path.nil?
render json: {
errors: ["City hall #{params[:id]} does not have a picture."]
# errors: ["City hall #{params[:id]} does not have a picture."]
errors: ["Prefeitura #{params[:id]} não possui uma foto!"]
}, status: 404
else
if not params[:size].nil?
......@@ -180,7 +191,8 @@ module Api::V1
def upload_picture
if @city_hall.nil?
render json: {
errors: ["City hall #{params[:id]} does not exist."]
# errors: ["City hall #{params[:id]} does not exist."]
errors: ["Prefeitura #{params[:id]} não existe!"]
}, status: 404
else
# Allow request only if the citizen is reachable from current user
......@@ -188,7 +200,8 @@ module Api::V1
authorize @city_hall, :update?
rescue
render json: {
errors: ["You're not allowed to update this city hall."]
# errors: ["You're not allowed to update this city hall."]
errors: ["Você não tem permissão para atualizar esta prefeitura!"]
}, status: 403
return
end
......@@ -203,11 +216,13 @@ module Api::V1
@city_hall.save
render json: {
errors: ["City hall avatar uploaded!"]
# errors: ["City hall avatar uploaded!"]
errors: ["Avatar da prefeitura atualizado!"]
}, status: 201
else
render json: {
errors: ["Avatar parameter undefined."]
# errors: ["Avatar parameter undefined."]
errors: ["Avatar indefinido!"]
}, status: 400
end
end
......
......@@ -14,7 +14,7 @@
# along with Agendador. If not, see <https://www.gnu.org/licenses/>.
module Api::V1
class DependantsController < ApplicationController
class DependantsController < ApplicationController
include Authenticable
include HasPolicies
......@@ -27,7 +27,8 @@ module Api::V1
def index
if @citizen.nil?
render json: {
errors: ["Citizen #{params[:citizen_id]} does not exist."]
# errors: ["Citizen #{params[:citizen_id]} does not exist."]
errors: ["Cidadão #{params[:citizen_id]} não existe!"]
}, status: :not_found
else
# Allow request only if the citizen is reachable from current user
......@@ -35,7 +36,8 @@ module Api::V1
authorize @citizen, :show_dependants?
rescue
render json: {
errors: ["You're not allowed to view this dependant."]
# errors: ["You're not allowed to view this dependant."]
errors: ["Você não tem permissão para visualizar este dependente!"]
}, status: 403
return
end
......@@ -65,16 +67,19 @@ module Api::V1
def show
if @citizen.nil?
render json: {
errors: ["Citizen #{params[:citizen_id]} does not exist."]
# errors: ["Citizen #{params[:citizen_id]} does not exist."]
errors: ["Cidadão #{params[:citizen_id]} não existe!"]
}, status: :not_found
else
if @dependant.nil?
render json: {
errors: ["Dependant #{params[:id]} does not exist."]
# errors: ["Dependant #{params[:id]} does not exist."]
errors: ["Dependente #{params[:id]} não existe!"]
}, status: :not_found
elsif @dependant.citizen.responsible_id != @citizen.id
render json: {
errors: ["Dependant #{params[:id]} does not belong to citizen #{params[:citizen_id]}."]
# errors: ["Dependant #{params[:id]} does not belong to citizen #{params[:citizen_id]}."]
errors: ["Dependente #{params[:id]} não pertence ao cidadão #{params[:citizen_id]}."]
}, status: :forbidden
else
# Allow request only if the citizen is reachable from current user
......@@ -82,7 +87,8 @@ module Api::V1
authorize @citizen, :show_dependants?
rescue
render json: {
errors: ["You're not allowed to view this dependant."]
# errors: ["You're not allowed to view this dependant."]
errors: ["Você não tem permissão para visualizar este dependente!"]
}, status: 403
return
end
......@@ -97,7 +103,8 @@ module Api::V1
def create
if @citizen.nil?
render json: {
errors: ["Citizen #{params[:citizen_id]} does not exist."]
# errors: ["Citizen #{params[:citizen_id]} does not exist."]
errors: ["Cidadão #{params[:citizen_id]} não existe!"]
}, status: :not_found
else
# Allow request only if the citizen is reachable from current user
......@@ -105,7 +112,8 @@ module Api::V1
authorize @citizen, :create_dependants?
rescue
render json: {
errors: ["You're not allowed to create dependants."]
# errors: ["You're not allowed to create dependants."]
errors: ["Você não tem permissão para criar dependentes!"]
}, status: 403
return
end
......@@ -116,7 +124,7 @@ module Api::V1
if new_params[:cep].blank?
new_params[:cep] = @citizen.cep
end
# Create new citizen associated with new dependant
citizen = Citizen.new(new_params)
citizen.active = true
......@@ -134,7 +142,7 @@ module Api::V1
if not citizen.save
render json: citizen.errors, status: :unprocessable_entity
else
else
@dependant = Dependant.new(citizen_id: citizen.id)
if @dependant.save
......@@ -151,16 +159,19 @@ module Api::V1
def update
if @citizen.nil?
render json: {
errors: ["Citizen #{params[:citizen_id]} does not exist."]
# errors: ["Citizen #{params[:citizen_id]} does not exist."]
errors: ["Cidadão #{params[:citizen_id]} não existe!"]
}, status: :not_found
else
if @dependant.nil?
render json: {
errors: ["Dependant #{params[:id]} does not exist."]
# errors: ["Dependant #{params[:id]} does not exist."]
errors: ["Dependente #{params[:id]} não existe!"]
}, status: :not_found
elsif @dependant.citizen.responsible_id != @citizen.id
render json: {
errors: ["Dependant #{params[:id]} does not belong to citizen #{params[:id]}."]
# errors: ["Dependant #{params[:id]} does not belong to citizen #{params[:id]}."]
errors: ["Dependente #{params[:id]} não pertence ao cidadão #{params[:id]}."]
}, status: :forbidden
else
# Allow request only if the citizen is reachable from current user
......@@ -168,7 +179,8 @@ module Api::V1
authorize @citizen, :create_dependants?
rescue
render json: {
errors: ["You're not allowed to create dependants."]
# errors: ["You're not allowed to create dependants."]
errors: ["Você não tem permissão para criar dependentes!"]
}, status: 403
return
end
......@@ -197,7 +209,7 @@ module Api::V1
new_params[:city_id] = Address.get_city_id(new_params[:cep])
end
if @dependant.citizen.update(new_params) and
if @dependant.citizen.update(new_params) and
render json: @dependant.complete_info_response
else
render json: @dependant.citizen.errors, status: :unprocessable_entity
......@@ -211,7 +223,8 @@ module Api::V1
def destroy
if @dependant.nil?
render json: {
errors: ["Dependant #{params[:id]} does not exist."]
# errors: ["Dependant #{params[:id]} does not exist."]
errors: ["Dependente #{params[:id]} não existe!"]
}, status: :not_found
else
@dependant.citizen.active = false
......
......@@ -80,7 +80,8 @@ module Api::V1
else
render json: {
errors: ["You're not allowed to view this form."]
# errors: ["You're not allowed to view this form."]
errors: ["Você não tem permissão para visualizar este formulário!"]
}, status: 403
return
end
......@@ -101,7 +102,8 @@ module Api::V1
else
render json: {
errors: ["You're not allowed to view this form."]
# errors: ["You're not allowed to view this form."]
errors: ["Você não tem permissão para visualizar este formulário!"]
}, status: 403
return
end
......@@ -122,7 +124,8 @@ module Api::V1
else
render json: {
errors: ["You're not allowed to view this form."]
# errors: ["You're not allowed to view this form."]
errors: ["Você não tem permissão para visualizar este formulário!"]
}, status: 403
return
end
......@@ -155,7 +158,8 @@ module Api::V1
else
render json: {
errors: ["You're not allowed to view this form."]
# errors: ["You're not allowed to view this form."]
errors: ["Você não tem permissão para visualizar este formulário!"]
}, status: 403
return
end
......@@ -176,7 +180,8 @@ module Api::V1
else
render json: {
errors: ["You're not allowed to view this form."]
# errors: ["You're not allowed to view this form."]
errors: ["Você não tem permissão para visualizar este formulário!"]
}, status: 403
return
end
......@@ -231,7 +236,8 @@ module Api::V1
else
render json: {
errors: ["You're not allowed to view this form."]
# errors: ["You're not allowed to view this form."]
errors: ["Você não tem permissão para visualizar este formulário!"]
}, status: 403
return
end
......@@ -346,7 +352,8 @@ module Api::V1
else
render json: {
errors: ["You're not allowed to view this form."]
# errors: ["You're not allowed to view this form."]
errors: ["Você não tem permissão para visualizar este formulário!"]
}, status: 403
return
end
......@@ -556,7 +563,8 @@ module Api::V1
else
render json: {
errors: ["You're not allowed to view this form."]
# errors: ["You're not allowed to view this form."]
errors: ["Você não tem permissão para visualizar este formulário!"]
}, status: 403
return
end
......@@ -577,7 +585,8 @@ module Api::V1
else
render json: {
errors: ["You're not allowed to view this form."]
# errors: ["You're not allowed to view this form."]
errors: ["Você não tem permissão para visualizar este formulário!"]
}, status: 403
return
end
......@@ -672,7 +681,8 @@ module Api::V1
else
render json: {
errors: ["You're not allowed to view this form."]
# errors: ["You're not allowed to view this form."]
errors: ["Você não tem permissão para visualizar este formulário!"]
}, status: 403
return
end
......@@ -693,7 +703,8 @@ module Api::V1
else
render json: {
errors: ["You're not allowed to view this form."]
# errors: ["You're not allowed to view this form."]
errors: ["Você não tem permissão para visualizar este formulário!"]
}, status: 403
return
end
......@@ -714,7 +725,8 @@ module Api::V1
else
render json: {
errors: ["You're not allowed to view this form."]
# errors: ["You're not allowed to view this form."]
errors: ["Você não tem permissão para visualizar este formulário!"]
}, status: 403
return
end
......
......@@ -18,55 +18,57 @@ module Api::V1
include Authenticable
before_action :set_notification, only: [:show, :update, :destroy]
# GET /notifications
# GET /notifications
def index
@notifications = Notification.where(account_id: current_user.first.account_id)
.where(read: false)
render json: @notifications
end
# POST /notifications
# POST /notifications
def create
notification = notification_params
if notification["account_id"].nil?
notification["account_id"] = current_user.first.account_id
end
end
@notification = Notification.new(notification)