wip: currently rewriting the project as a full stack application tangled.org/kacaii.dev/sigo
gleam

:truck: rename `authorized_roles` to use labeled parameter instead

+19 -14
+1 -1
src/app/domain/brigade/register_new_brigade.gleam
··· 105 105 body body: RequestBody, 106 106 ) -> Result(String, RegisterBrigadeError) { 107 107 use _ <- result.try( 108 - user.check_authorization(request: req, authorized_roles: [ 108 + user.check_authorization(request: req, authorized: [ 109 109 role.Admin, 110 110 role.Developer, 111 111 ])
+5 -2
src/app/domain/data_analysis/analysis_occurrence_volume.gleam
··· 62 62 } 63 63 } 64 64 65 - fn query_database(req: wisp.Request, ctx: Context) { 65 + fn query_database( 66 + req: wisp.Request, 67 + ctx: Context, 68 + ) -> Result(String, AnalysisError) { 66 69 use _ <- result.try( 67 - user.check_authorization(request: req, authorized_roles: [ 70 + user.check_authorization(request: req, authorized: [ 68 71 role.Admin, 69 72 role.Developer, 70 73 role.Analyst,
+9 -7
src/app/domain/user.gleam
··· 18 18 NotAuthorized( 19 19 user_uuid: uuid.Uuid, 20 20 user_role: role.Role, 21 - authorized_roles: List(role.Role), 21 + authorized: List(role.Role), 22 22 ) 23 23 /// 󰆼 DataBase operation failed during access control check 24 24 DataBase(pog.QueryError) ··· 47 47 /// to verify if the user has authorization to access determined endpoint 48 48 pub fn check_authorization( 49 49 request request: wisp.Request, 50 - authorized_roles authorized_roles: List(role.Role), 50 + authorized roles: List(role.Role), 51 51 ) -> Result(role.Role, AccessControlError) { 52 52 use token <- result.try( 53 53 session.extract(request) ··· 55 55 ) 56 56 57 57 // 󰈞 Check if that role has authorization 58 - list.find(authorized_roles, fn(authorized) { token.user_role == authorized }) 58 + list.find(roles, fn(role) { token.user_role == role }) 59 59 |> result.replace_error(NotAuthorized( 60 60 user_uuid: token.user_id, 61 61 user_role: token.user_role, 62 - authorized_roles:, 62 + authorized: roles, 63 63 )) 64 64 } 65 65 66 - pub fn handle_access_control_error(err: AccessControlError) { 66 + pub fn handle_access_control_error(err: AccessControlError) -> wisp.Response { 67 67 case err { 68 68 Session(err) -> session.handle_error(err) 69 + 69 70 DataBase(err) -> web.handle_database_error(err) 71 + 70 72 RoleNotFound -> 71 73 "Não foi possível confirmar o cargo do usuário" 72 74 |> wisp.Text ··· 76 78 wisp.Text("Usuário autenticado possui cargo não reconhecido: " <> str) 77 79 |> wisp.set_body(wisp.response(401), _) 78 80 79 - NotAuthorized(user_uuid:, user_role:, authorized_roles:) -> { 81 + NotAuthorized(user_uuid:, user_role:, authorized:) -> { 80 82 json.object([ 81 83 #("id", json.string(uuid.to_string(user_uuid))), 82 84 #("user_role", json.string(role.to_string_pt_br(user_role:))), 83 - #("required", json.array(authorized_roles, role.to_json)), 85 + #("required", json.array(authorized, role.to_json)), 84 86 ]) 85 87 |> json.to_string 86 88 |> wisp.json_response(403)
+1 -1
src/app/domain/user/delete_user.gleam
··· 77 77 ) 78 78 79 79 use _ <- result.try( 80 - user.check_authorization(request: req, authorized_roles: [ 80 + user.check_authorization(request: req, authorized: [ 81 81 role.Admin, 82 82 role.Developer, 83 83 ])
+1 -1
src/app/domain/user/get_all_user_profiles.gleam
··· 62 62 ctx: Context, 63 63 ) -> Result(String, GetAllUsersError) { 64 64 use _ <- result.try( 65 - user.check_authorization(request: req, authorized_roles: [ 65 + user.check_authorization(request: req, authorized: [ 66 66 role.Admin, 67 67 role.Developer, 68 68 ])
+1 -1
src/app/domain/user/signup.gleam
··· 55 55 ctx ctx: Context, 56 56 ) -> Result(String, SignupError) { 57 57 use _ <- result.try( 58 - user.check_authorization(request:, authorized_roles: [ 58 + user.check_authorization(request:, authorized: [ 59 59 role.Admin, 60 60 role.Developer, 61 61 ])
+1 -1
src/app/domain/user/update_user_status.gleam
··· 67 67 is_active is_active: Bool, 68 68 ) -> Result(String, UpdateUserStatusError) { 69 69 use _ <- result.try( 70 - user.check_authorization(request: req, authorized_roles: [ 70 + user.check_authorization(request: req, authorized: [ 71 71 role.Admin, 72 72 role.Developer, 73 73 ])