Clone o projeto
git clone [email protected]:Doginnn/band-graphql.git
Acesse o diretório clonado
cd band-graphql
Crie o Arquivo .env
cp .env.example .env
Atualize essas variáveis de ambiente no arquivo .env
APP_NAME="laravel"
APP_URL=http://localhost:8000
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=nome_que_desejar_db
DB_USERNAME=nome_usuario
DB_PASSWORD=senha_aqui
Suba os containers do projeto
docker-compose up -d
Acesse o container
docker-compose exec app bash
Instale o GraphQL no projeto
composer require rebing/graphql-laravel
Publique o arquivo de configuração
php artisan vendor:publish --provider="Rebing\GraphQL\GraphQLServiceProvider"
Instale as dependências do projeto
composer install
Gere a key do projeto Laravel
php artisan key:generate
Gere a migração do banco no projeto Laravel
php artisan migrate
Acesse o projeto
Foram criados Factories para popular o banco com Álbums, Músicas e Letras. Para popular o banco, basta rodar o comando correto.
Caso ainda não tenha rodado o "php artisan migrate"(Cria as tabelas e popula com os dados)
php artisan migrate --seed
Caso já tenha rodado o "php artisan migrate"(Apenas popula os dados)
php artisan db:seed
Todas foram testadas pelo POSTMAN
POST - ID ALBUM
query {
album(id: 1) {
id
title
release_date
}
}
POST - ALL ALBUMS
query {
albums {
id
title
release_date
}
}
POST - ID MUSIC
query {
music(id: 1) {
id
title
duration
album_id
}
}
POST - ALL MUSICS
query {
musics {
id
title
duration
album_id
}
}
POST - ID LYRIC
query {
lyric(id: 1) {
id
content
music_id
}
}
POST - ALL LYRICS
query {
lyrics {
id
content
music_id
}
}
POST - CREATE ALBUM
mutation {
createAlbum(
title: "Teste de criação Album",
release_date: "2024-02-26"
) {
id
title
release_date
}
}
POST - UPDATE ALBUM
mutation {
updateAlbum(
id: 1
title: "Teste de modificação Album",
release_date: "2024-02-26"
) {
id
title
release_date
}
}
POST - DESTROY ALBUM
mutation {
destroyAlbum(
id: 1
)
}
POST - CREATE MUSIC
mutation {
createMusic(
title: "Teste de criação Música",
duration: "2024-02-26",
album_id: "1"
) {
id
title
duration
album_id
}
}
POST - UPDATE MUSIC
mutation {
updateMusic(
id: 1
title: "Teste de edição Música",
duration: "33",
album_id: "1"
) {
id
title
duration
album_id
}
}
POST - DESTROY MUSIC
mutation {
destroyMusic(
id: 1
)
}
POST - CREATE LYRIC
mutation {
createLyric(
content: "Teste de criação Letra",
music_id: "1"
) {
id
content
music_id
}
}
POST - UPDATE LYRIC
mutation {
updateLyric(
id: 31
content: "Teste de edição Letra",
music_id: "1"
) {
id
content
music_id
}
}
POST - DESTROY LYRIC
mutation {
destroyLyric(
id: 1
)
}