💙 Elite37 💙 Flutter / Dart - Brasil
Comunidade de desenvolvedores Flutter. 🚀Venha fazer parte!
back-End Mobile do Aplicativo Vagas Flutter
💙 Elite37 💙 Flutter / Dart - Brasil
Comunidade de desenvolvedores Flutter. 🚀Venha fazer parte!
Se o client não especificar os parâmetros: page
e limit
como query parameter a busca por vagas deve retornar todos os registros da base de dados
Cada page
contém, a princípio, 10 registros a menos que o cliente especifique um valor para limit
GET /jobs?page=1&limit=15
- deve retornar os 15 primeiros registros. [1,15]GET /jobs?page=2&limit=10
- deve retornar 10 registros a partir do item 11 (inicio da pagina2). [21-30]LIMIT start, end
page
e limit
para o filtro de /jobs
findOne(String id)
para retornar JobDetails
Criação do Controlador que responde a rota Login
Criar componente AppBar padrão;
Modificar todas as telas existentes para obter o appBar padrão.
Utilização do dotenv
Criar uma classe que abstrai um servidor
List<JobModel> _fakeDB = [];
/jobs
;/companies
;/users
.AuthTO
- Transfer Object
String email
String password
UserDAO
- Data Access Object
UserService
Criação da Rota PUT /users-status
POST
para /companies-image
enviando um id de company
ja cadastrada deverá sobrescrever a imagem anterior.Imagem alterada com sucesso.
Controller
- recebe uma lista de middlewares a serem implementados nas rotas e um parametro true
ou false
se necessita de verificação de token JWT no headers da requisição.Refatorar as entidades para ficar com mesmo modelo do backend
content-type: application/json
Para lidar com requisições de upload de arquivo, você precisará configurar o servidor para
aceitar requisições multipartes. Isso é feito através do uso de um middleware chamado shelf.multipartMiddleware().
O middleware shelf.multipartMiddleware() analisa o cabeçalho de uma requisição e verifica se a requisição é multipart/form-data. Em seguida, ele extrai e analisa os dados do corpo da requisição para obter os campos e arquivos enviados.
shelf.multipartMiddleware()
para aceitar requisições multipartes.handler
para lidar com as requisições de upload de imagens.Utilização do pacote password_dart
get-jobs
get-jobs-id
post-jobs
put-jobs
put-jobs-status
get-companies
get-companies-id
post-companies
put-companies
put-companies-status
get-users
get-users-id
post-users
put-users
put-users-status
Criar no banco de dados a tabela roles
Criar no banco de dados a tabela profile_roles
Criar role manualmente no banco para teste
Refatorar a interface serviço de segurança para que o método que gera o token receba uma String contendo a "role" do usuario que acessa a rota
Ajustar a implementação da interface para receber a lista como parametro do métdodo generateJWT(String userID, String profileID)
Refatorar middleware verifyJWT
para verificar permissao do usuario para acessar a rota
/companies/id/
POST
com o arquivo de imagem convertido para base64
juntamente do Id da empresa a que pertence a imagem.GET
com o ID da empresa que deseja./companies-images
para o endpoint CompaniesImageController
/companies-image
- exige autenticação/companies-image/id/<companyID>
- rota pública que retorna um content-type: image/<extension>
Ex. image/png.content-type: application/json
abstract class GenericService<T> {
Future<T> findOne(int id);
Future<List<T>> findAll();
Future<bool> save(T object);
Future<bool> delete(int id);
}
companies
CompanyModel
CompaniesDAO
CompaniesService
CompaniesController
/companies
/companies/id/<id>
/companies?<key>=<value>
/companies
/companies
/companies-status
O objeto Response
da ação GET no endpoint /jobs
deve retornar um objeto
{ "totalPages": 5, "data": [] }
Criação do controlador que contém a rota /jobs
/jobs
Criação da primeira rota. '/login'
Criação do controlador da rota UserController
/user
Quando um usuário faz uma denúncia, armazenamos as informações relevantes em um banco de dados. Além disso, enviamos um e-mail para os administradores do sistema notificando-os da denúncia e fornecendo as informações relevantes para que possam tomar medidas apropriadas.
Quando os administradores recebem uma denúncia, eles devem processá-la adequadamente. Isso envolve
Depois que a denúncia for processada, notificamos o usuário que fez a denúncia sobre o resultado da investigação. Isso envolve
jobs_report
na base de dados com os campos
int id
varchar job_id
varchar description
DateTime created_date
JobsReportModel
JobsReportDAO
JobsReportService
JobsReportController
SecurityServiceImp
Cascade()
/users
/users
/users/id/<id>
/users
-[ ] Email
-[ ] Token
Jobs
class JobModel {
final int id;
final int companyId;
final String title;
final String description;
final double salary;
final String local;
final String seniority;
final String regime;
final String link;
final String whatsappNumber;
final String email;
final String createdBy;
final DateTime createdDate;
final String changedBy;
final DateTime changedDate;
}
mysql1
Atualmente os controladores declarados seguros possuem em sua lista de middlewares, dois em especial: authorization
e verifyJWT
.
'jwt'
no context
da requisição.'role'
.Atualmente os middlewares de segurança estão sendo executados tantas vezes quanto o número de controladores declarados seguros.
jobs
jobs?
jobs/id/
login
companies-image
Camada Service recebe uma implementação de DAO
createJWT()
verifyJWT()
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.