Ce projet est le Backend de l'application RadarTech. La procédure de déploiement est disponible sur le dépôt principal de l'application.
- GraphQL
- NodeJS
- mongoDB
- Node 14
- npm 6
Les requêtes suivantes sont celles autorisées actuellement :
mutation <metier>($answer: <metier>Input!) {
<metier>(answer: $answer) {
email
}
}
{
"answer": {
"email": "<a unique valid email>",
"demo_age": "<age>"
}
}
{
<metier> {
email,
demo_age,
demo_genre,
education_formation
}
}
Voici une liste des commandes utiles pour administrer la base :
$ use radarTechDB
$ db.answers.find() // Afficher tous les documents de la collection answers
$ db.answers.remove( { } ) // Supprimer tous les docuements de la collection answers
- Copier le fichier
./script/.env.example
et le renommer en.env
- Remplir la valeur
MONGO_URL
dans le fichier.env
- Remplir la valeur de
ACCESS_TOKEN_SECRET
avec celle du serveur - Lancer le script
__createAccessToken__
avec le nom de l'utilisateur et son rôle Rôles acceptés : ["frontend", "dev"]
node createAccessToken.js <username> <usertoken>
- Ajouter un attribut dans le schéma mongo
Dans le fichier mongoSchema.js
, ajouter un attribut dans le dictionnaire mongoSchema
.
Les types sont disponibles dans la documentation mongoose.
Différentes clés peuvent être ajoutées, par exemple :
confirm_email: {
type: String,
required: true,
default: false
}
Sachant que containers_bool: String
est équivalent à containers_bool: String
.
- Ajouter un attribut dans le schéma GraphQL
Dans le fichier
graphqlSchema
, ajouter un attribut dans le dictionnaireanswerTypeGql
en suivant le format :
NOM_ATTRIBUT: { type: <GRAPHQL_TYPE>}
Les types disponibles sont détaillés dans la documentation de la librairie GraphQL-JS. Le type doit être importé :
const {
GraphQLID,
GraphQLNonNull,
GraphQLString,
GraphQLList,
GraphQLInt,
} = require("graphql");
- Si une réponse est soumise avec un email déjà présent en DB, un email est envoyé
- Être en mesure de modifier sa contribution
- Pouvoir supprimer sa soumission