Merge pull request #1 from opensupports/master

Update
This commit is contained in:
Guillermo Giuliana 2017-06-09 16:26:48 -03:00 committed by GitHub
commit 7b3625736b
95 changed files with 785 additions and 545 deletions

View File

@ -12,8 +12,8 @@ export default {
'FORGOT_PASSWORD': 'Passwort vergessen?',
'RECOVER_PASSWORD': 'Passwort wiederherstellen',
'RECOVER_SENT': 'Eine E-Mail mit Wiederherstellungs Anweisungen wurde gesendet.',
'NEW_EMAIL': 'नई ईमेल',
'FULL_NAME': 'पूरा नाम',
'NEW_EMAIL': 'Neue e-mail',
'FULL_NAME': 'vollständiger Name',
'OLD_PASSWORD': 'Altes Passwort',
'NEW_PASSWORD': 'Neues Passwort',
'REPEAT_NEW_PASSWORD': 'Wiederhole das neue Passwort',

View File

@ -1,7 +1,7 @@
export default {
'WELCOME': 'Bienvenue',
'TICKETS': 'Des billets',
'ARTICLES': 'Des articles',
'TICKETS': 'Tickets',
'ARTICLES': 'Articles',
'ACCOUNT': 'Compte',
'SUBMIT': 'Soumettre',
'EMAIL': 'Email',
@ -9,28 +9,28 @@ export default {
'REPEAT_PASSWORD': 'Répéter le mot de passe',
'LOG_IN': 'S\'identifier',
'SIGN_UP': 'S\'inscrire',
'FORGOT_PASSWORD': 'Mot de passe oublié?',
'FORGOT_PASSWORD': 'Mot de passe oublié ?',
'RECOVER_PASSWORD': 'Récupérer mot de passe',
'RECOVER_SENT': 'Un e-mail contenant les instructions de récupération a été envoyé.',
'NEW_EMAIL': 'Nouveau courriel',
'FULL_NAME': 'Nom complet',
'OLD_PASSWORD': 'Ancien mot de passe',
'NEW_PASSWORD': 'Nouveau mot de passe',
'REPEAT_NEW_PASSWORD': 'Répété le nouveau mot de passe',
'REPEAT_NEW_PASSWORD': 'Répéter le nouveau mot de passe',
'BACK_LOGIN_FORM': 'Retour au formulaire de connexion',
'VIEW_ARTICLES': 'Voir les articles',
'EDIT_PROFILE': 'Editer le profil',
'CLOSE_SESSION': 'Fermer la session',
'CREATE_TICKET': 'Créer un ticket',
'TICKET_LIST': 'Liste des billets',
'SUPPORT_CENTER': 'Centre de soutien',
'DEPARTMENT': 'département',
'TICKET_LIST': 'Liste des tickets',
'SUPPORT_CENTER': 'Centre d\'assistance',
'DEPARTMENT': 'Département',
'AUTHOR': 'Auteur',
'DATE': 'Rendez-vous amoureux',
'DATE': 'Date',
'RESPOND': 'Répondre',
'RESPOND_TICKET': 'Répondre Ticket',
'RESPOND_TICKET': 'Répondre au ticket',
'NO_ATTACHMENT': 'Aucune pièce jointe',
'STAFF': 'Personnel',
'STAFF': 'Administrateur',
'CUSTOMER': 'Client',
'YES': 'Oui',
'NO': 'Non',
@ -41,55 +41,55 @@ export default {
'SETTINGS': 'Paramètres',
'STATISTICS': 'Statistiques',
'LAST_ACTIVITY': 'Dernière Activité',
'MY_TICKETS': 'Mes billets',
'NEW_TICKETS': 'Nouveaux billets',
'ALL_TICKETS': 'Tous les billets',
'MY_TICKETS': 'Mes tickets',
'NEW_TICKETS': 'Nouveaux tickets',
'ALL_TICKETS': 'Tous les tickets',
'CUSTOM_RESPONSES': 'Réponses personnalisées',
'LIST_USERS': 'Liste des utilisateurs',
'BAN_USERS': 'Utilisateurs de Ban',
'LIST_ARTICLES': 'Liste des articles',
'STAFF_MEMBERS': 'Les membres du personnel',
'LIST_USERS': 'Voir les utilisateurs',
'BAN_USERS': 'Bannir des utilisateurs',
'LIST_ARTICLES': 'Voir les articles',
'STAFF_MEMBERS': 'Membres de l\'administration',
'DEPARTMENTS': 'Départements',
'SYSTEM_PREFERENCES': 'Préférences de système',
'SYSTEM_PREFERENCES': 'Préférences du système',
'ADVANCED_SETTINGS': 'Réglages avancés',
'EMAIL_TEMPLATES': 'Modèles de courrier électronique',
'FILTERS_CUSTOM_FIELDS': 'Filtres et champs personnalisés',
'PRIORITY': 'Priorité',
'NUMBER': 'Nombre',
'HIGH': 'Haute',
'MEDIUM': 'Moyen',
'MEDIUM': 'Moyenne',
'LOW': 'Faible',
'TITLE': 'Titre',
'CONTENT': 'Contenu',
'SAVE': 'sauvegarder',
'SAVE': 'Enregistrer',
'DISCARD_CHANGES': 'Annuler les modifications',
'DELETE': 'Effacer',
'LANGUAGE': 'La langue',
'OWNER': 'Propriétaire',
'OWNED': 'Propriétaire',
'DELETE': 'Supprimer',
'LANGUAGE': 'Langue',
'OWNER': 'Assigné à',
'OWNED': 'Assigné à',
'STATUS': 'Statut',
'NONE': 'Aucun',
'OPENED': 'Ouvert',
'CLOSED': 'Fermé',
'CLOSE': 'Fermer',
'RE_OPEN': 'Ouvert',
'ASSIGN_TO_ME': 'Affectez-moi',
'RE_OPEN': 'Réouvrir',
'ASSIGN_TO_ME': 'Assignez-moi',
'UN_ASSIGN': 'Désassigner',
'VIEW_TICKET': 'Voir le billet',
'VIEW_TICKET_DESCRIPTION': 'Vérifiez l\'état de votre billet en utilisant votre numéro de billet et votre courriel.',
'VIEW_TICKET': 'Voir le ticket',
'VIEW_TICKET_DESCRIPTION': 'Vérifiez l\'état de votre ticket en utilisant votre numéro de ticket et votre courriel.',
'SELECT_CUSTOM_RESPONSE': 'Sélectionnez une réponse personnalisée ...',
'WARNING': 'Attention',
'INFO': 'Information',
'ALL_DEPARTMENTS': 'Tous les départements',
'EMAIL_BANNED': 'Email interdit',
'UN_BAN': 'Désactiver l\'interdiction',
'BAN_NEW_EMAIL': ' Interdire un nouveau courriel',
'BAN_EMAIL': 'Ban email',
'EMAIL_BANNED': 'Email bannis',
'UN_BAN': 'Désactiver le ban',
'BAN_NEW_EMAIL': 'Bannir un nouveau courriel',
'BAN_EMAIL': 'Bannir l\'email',
'EDIT_EMAIL': 'Modifier l\'email',
'EDIT_PASSWORD': 'Modifier le mot de passe',
'CHANGE_EMAIL': 'Changer l\'e-mail',
'CHANGE_PASSWORD': 'Changer le mot de passe',
'NAME': 'prénom',
'NAME': 'Nom',
'SIGNUP_DATE': 'Date d\'inscription',
'SEARCH_USERS': 'Rechercher des utilisateurs ...',
'SEARCH_EMAIL': 'Chercher un email...',
@ -100,129 +100,129 @@ export default {
'COLOR': 'Couleur',
'ADD_NEW_ARTICLE': 'Ajouter un nouvel article',
'ADD_ARTICLE': 'Ajouter un article',
'LAST_EDITED_IN': 'Dernière modification dans {date}',
'EDIT': 'modifier',
'LAST_EDITED_IN': 'Dernière modification le {date}',
'EDIT': 'Modifier',
'NO_RESULTS': 'Aucun résultat',
'DELETE_AND_BAN': 'Supprimer et interdire',
'STAFF_LEVEL': 'Personnel',
'ASSIGNED': 'Attribué',
'ASSIGNED_TICKETS': '{tickets} billets assignés',
'CLOSED_TICKETS': '{tickets} billets fermés',
'DELETE_AND_BAN': 'Supprimer et bannir',
'STAFF_LEVEL': 'Niveau d\'administration',
'ASSIGNED': 'Assigné',
'ASSIGNED_TICKETS': '{tickets} tickets assignés',
'CLOSED_TICKETS': '{tickets} tickets fermés',
'LAST_LOGIN': 'Dernière connexion',
'ADD_NEW_STAFF': 'Ajouter du personnel',
'ADD_STAFF': 'Ajouter du personnel',
'ADD_NEW_STAFF': 'Ajouter un nouvel administrateur',
'ADD_STAFF': 'Ajouter un administrateur',
'LEVEL': 'Niveau',
'LEVEL_1': 'Niveau 1 (billets)',
'LEVEL_2': 'Niveau 2 (billets + articles)',
'LEVEL_3': 'Niveau 3 (billets + articles + personnel)',
'LEVEL_1': 'Niveau 1 (Tickets)',
'LEVEL_2': 'Niveau 2 (Tickets + Articles)',
'LEVEL_3': 'Niveau 3 (Tickets + Articles + Administrateurs)',
'LEVEL_1_DESCRIPTION': 'Ne peut que répondre aux tickets et gérer les utilisateurs.',
'LEVEL_2_DESCRIPTION': 'Peut faire chaque niveau 1, peut créer ou modifier des articles et il peut créer des réponses personnalisées.',
'LEVEL_3_DESCRIPTION': 'Peut faire tous les niveaux 2, peut créer ou modifier des membres du personnel et peut gérer l\'ensemble du système.',
'UPDATE_EMAIL': 'Mettre à jour le courrier électronique',
'LEVEL_2_DESCRIPTION': 'En plus du niveau 1, peut créer ou modifier des articles et créer des réponses personnalisées.',
'LEVEL_3_DESCRIPTION': 'En plus du niveau 2, peut créer ou modifier des membres de l\'administration et gérer l\'ensemble du système.',
'UPDATE_EMAIL': 'Mettre à jour l\'email',
'UPDATE_PASSWORD': 'Mettre à jour le mot de passe',
'UPDATE_LEVEL': 'Niveau de mise à jour',
'UPDATE_DEPARTMENTS': 'Mise à jour des départements',
'EDIT_STAFF': 'Modifier le membre du personnel',
'UPDATE_LEVEL': 'Mettre à jour le niveau',
'UPDATE_DEPARTMENTS': 'Mettre à jour les départements',
'EDIT_STAFF': 'Modifier le membre de l\'administration',
'ADD_DEPARTMENT': 'Ajouter un département',
'UPDATE_DEPARTMENT': 'Service de mise à jour',
'TRANSFER_TICKETS_TO': 'Transfert de billets à',
'COMMENTS': 'commentaires',
'DELETE_STAFF_MEMBER': 'Supprimer le membre du personnel',
'UPDATE_DEPARTMENT': 'Mettre à jour le département',
'TRANSFER_TICKETS_TO': 'Transférer les tickets à',
'COMMENTS': 'Commentaires',
'DELETE_STAFF_MEMBER': 'Supprimer le membre de l\'administration',
'MAINTENANCE_MODE': 'Mode de Maintenance',
'MAINTENANCE_MODE_INFO': 'Il désactivera temporairement le système pour les utilisateurs réguliers.',
'MAINTENANCE_MODE_INFO': 'Désactive temporairement le système pour les utilisateurs normaux.',
'RECOVER_DEFAULT': 'Récupération par défaut',
'SUPPORT_CENTER_URL': 'URL du centre de support',
'SUPPORT_CENTER_TITLE': 'Titre du centre de supporte',
'SUPPORT_CENTER_LAYOUT': 'Disposition du centre de support',
'DEFAULT_TIMEZONE': 'Par défaut Timezone (GMT)',
'NOREPLY_EMAIL': 'aucune réponse email',
'SUPPORT_CENTER_URL': 'URL du Centre de Support',
'SUPPORT_CENTER_TITLE': 'Titre du Centre de Support',
'SUPPORT_CENTER_LAYOUT': 'Disposition du Centre de Support',
'DEFAULT_TIMEZONE': 'Fuseau horaire par défaut (GMT)',
'NOREPLY_EMAIL': 'Adresse email "noreply"',
'SMTP_USER': 'Utilisateur SMTP',
'SMTP_SERVER': 'Serveur SMTP',
'SMTP_PASSWORD': 'Mot de passe SMTP',
'PORT': 'Port',
'RECAPTCHA_PUBLIC_KEY': 'Clé recaptcha poste',
'RECAPTCHA_PRIVATE_KEY': 'Recaptcha clé privée',
'ALLOW_FILE_ATTACHMENTS': 'Autoriser les pièces jointes au Fichier',
'RECAPTCHA_PUBLIC_KEY': 'Clé publique Recaptcha',
'RECAPTCHA_PRIVATE_KEY': 'Clé privée Recaptcha',
'ALLOW_FILE_ATTACHMENTS': 'Autoriser les pièces jointes',
'MAX_SIZE_KB': 'Taille Maximale (Ko)',
'UPDATE_SETTINGS': 'Mettre à jour les paramêtres',
'UPDATE_SETTINGS': 'Mettre à jour les paramètres',
'DEFAULT_LANGUAGE': 'Langue par défaut',
'SUPPORTED_LANGUAGES': 'Langues Prises en charges',
'SUPPORTED_LANGUAGES_INFO': 'Les langues prises en charge sont les langues dans lesquelles les billets peuvent être écrits.',
'SUPPORTED_LANGUAGES': 'Langues prises en charges',
'SUPPORTED_LANGUAGES_INFO': 'Les langues prises en charge sont les langues dans lesquelles les tickets peuvent être écrits.',
'ALLOWED_LANGUAGES': 'Langues autorisées',
'ALLOWED_LANGUAGES_INFO': 'Les langues autorisées sont les langues qui peuvent être utilisées par un utilisateur.',
'SETTINGS_UPDATED': 'Les paramètres ont été mis à jour',
'ON': 'Sur',
'OFF': 'De',
'ON': 'Activé',
'OFF': 'Désactivé',
'BOXED': 'Boîte',
'FULL_WIDTH': 'Pleine largeur',
'LOAD_MORE': 'Charger plus',
'MY_NOTIFICATIONS': 'Mes notifications',
'ALL_NOTIFICATIONS': 'Toutes les notifications',
'VERIFY_SUCCESS': 'Mot de passe',
'VERIFY_SUCCESS': 'Utilisateur vérifié',
'VERIFY_FAILED': 'Impossible de vérifier',
'ENABLE_USER_SYSTEM': 'Utiliser le système utilisateur pour les clients',
'ENABLE_USER_REGISTRATION': 'Activer l\'enregistrement des utilisateurs',
'INCLUDE_USERS_VIA_CSV': 'Inclure les utilisateurs via le fichier CSV',
'ENABLE_USER_REGISTRATION': 'Activer l\'inscription des utilisateurs',
'INCLUDE_USERS_VIA_CSV': 'Inclure des utilisateurs via un fichier CSV',
'BACKUP_DATABASE': 'Base de données de sauvegarde',
'DELETE_ALL_USERS': 'Supprimer tous les utilisateurs',
'PLEASE_CONFIRM_PASSWORD': 'Veuillez confirmer votre mot de passe pour effectuer ces modifications.',
'REGISTRATION_API_KEYS': 'Clés API d\'enregistrement',
'REGISTRATION_API_KEYS': 'Clés d\'authentification API',
'NAME_OF_KEY': 'Nom de la clé',
'KEY': 'Clé',
'ADD_API_KEY': 'Ajouter une clé API',
'NO_KEY_SELECTED': 'Aucune clé sélectionnée',
'CHECK_TICKET': 'Vérifier le billet',
'CHECK_TICKET': 'Vérifier le ticket',
'ACTIVITY': 'Activité',
'HOME': 'Accueil',
'TICKET_NUMBER': 'Numéro de billet',
'NEXT': 'Prochain',
'TICKET_NUMBER': 'Numéro de ticket',
'NEXT': 'Suivant',
'CHART_CREATE_TICKET': 'Billets créés',
'CHART_CLOSE': 'Billets fermés',
'CHART_CREATE_TICKET': 'Tickets créés',
'CHART_CLOSE': 'Tickets fermés',
'CHART_SIGNUP': 'Inscriptions',
'CHART_COMMENT': 'Réponses',
'CHART_ASSIGN': 'Attribué',
'CHART_ASSIGN': 'Assignés',
//ACTIVITIES
'ACTIVITY_COMMENT': 'Billet commenté',
'ACTIVITY_ASSIGN': 'Billet assigné',
'ACTIVITY_UN_ASSIGN': 'Billet non attribué',
'ACTIVITY_CLOSE': 'Billet fermé',
'ACTIVITY_CREATE_TICKET': 'Billet créé',
'ACTIVITY_RE_OPEN': 'Billet rouvert',
'ACTIVITY_DEPARTMENT_CHANGED': 'A changé de département de billet',
'ACTIVITY_PRIORITY_CHANGED': 'Priorité changée du billet',
'ACTIVITY_COMMENT': 'ticket commenté',
'ACTIVITY_ASSIGN': 'ticket assigné',
'ACTIVITY_UN_ASSIGN': 'ticket non assigné',
'ACTIVITY_CLOSE': 'ticket fermé',
'ACTIVITY_CREATE_TICKET': 'ticket créé',
'ACTIVITY_RE_OPEN': 'ticket réouvert',
'ACTIVITY_DEPARTMENT_CHANGED': 'a changé de département le ticket',
'ACTIVITY_PRIORITY_CHANGED': 'a changé la priorité du ticket',
'ACTIVITY_EDIT_SETTINGS': 'Paramètres modifiés',
'ACTIVITY_SIGNUP': 'signé',
'ACTIVITY_ADD_TOPIC': 'Sujet ajouté',
'ACTIVITY_ADD_ARTICLE': 'Article ajouté',
'ACTIVITY_DELETE_TOPIC': 'Sujet supprimé',
'ACTIVITY_DELETE_ARTICLE': 'Article supprimé',
'ACTIVITY_EDIT_ARTICLE': 'Article édité',
'ACTIVITY_ADD_STAFF': 'Personnel supplémentaire',
'ACTIVITY_ADD_DEPARTMENT': 'Département ajouté',
'ACTIVITY_DELETE_DEPARTMENT': 'Département supprimé',
'ACTIVITY_EDIT_DEPARTMENT': 'Département édité',
'ACTIVITY_ADD_CUSTOM_RESPONSE': 'Ajout d\'une réponse personnalisée',
'ACTIVITY_DELETE_CUSTOM_RESPONSE': 'Réponse personnalisée supprimée',
'ACTIVITY_EDIT_CUSTOM_RESPONSE': 'Réponse personnalisée éditée',
'ACTIVITY_BAN_USER': 'Utilisateur interdit',
'ACTIVITY_DELETE_USER': 'utilisateur supprimé',
'ACTIVITY_UN_BAN_USER': 'Utilisateur interdit',
'ACTIVITY_EDIT_SETTINGS': 'a modifié les paramètres',
'ACTIVITY_SIGNUP': 's\'est inscrit',
'ACTIVITY_ADD_TOPIC': 'a ajouté un sujet',
'ACTIVITY_ADD_ARTICLE': 'a ajouté un article',
'ACTIVITY_DELETE_TOPIC': 'a supprimé le sujet',
'ACTIVITY_DELETE_ARTICLE': 'a supprimé un article',
'ACTIVITY_EDIT_ARTICLE': 'a modifié un article',
'ACTIVITY_ADD_STAFF': 'a ajouté un administrateur',
'ACTIVITY_ADD_DEPARTMENT': 'a ajouté un département',
'ACTIVITY_DELETE_DEPARTMENT': 'a supprimé le département',
'ACTIVITY_EDIT_DEPARTMENT': 'a modifié le département',
'ACTIVITY_ADD_CUSTOM_RESPONSE': 'a ajouté une réponse personnalisée',
'ACTIVITY_DELETE_CUSTOM_RESPONSE': 'a supprimé une réponse personnalisée',
'ACTIVITY_EDIT_CUSTOM_RESPONSE': 'a modifié une réponse personnalisée',
'ACTIVITY_BAN_USER': 'a banni un utilisateur',
'ACTIVITY_DELETE_USER': 'a supprimé un utilisateur',
'ACTIVITY_UN_BAN_USER': 'a retiré le ban d\'un utilisateur',
'SERVER_REQUIREMENTS': 'Configuration minimale du serveur',
'DATABASE_CONFIGURATION': 'Configuration de base de données',
'DATABASE_CONFIGURATION': 'Configuration de la base de données',
'ADMIN_SETUP': 'Configuration de l\'administrateur',
'COMPLETED': 'Terminé',
'INSTALL_HEADER_TITLE': 'Assistant d\'installation d\'OpenSupports',
'INSTALL_HEADER_DESCRIPTION': 'Cet assistant vous aidera à configurer et à installer OpenSupports sur votre site Web',
'SELECT_LANGUAGE': 'Choisir la langue',
'REQUIREMENT': 'Exigence',
'REQUIREMENT': 'Condition requise',
'VALUE': 'Valeur',
'REFRESH': 'Rafraîchir',
'REFRESH': 'Actualiser',
'USER_SYSTEM': 'Système utilisateur',
'PREVIOUS': 'précédent',
'PREVIOUS': 'Précédent',
'DATABASE_HOST': 'Serveur MySQL',
'DATABASE_NAME': 'Nom de la base de données MySQL',
'DATABASE_USER': 'Utilisateur MySQL',
@ -230,111 +230,111 @@ export default {
'ADMIN_NAME': 'Nom du compte administrateur',
'ADMIN_EMAIL': 'Courriel du compte administrateur',
'ADMIN_PASSWORD': 'Mot de passe administrateur',
'ADMIN_PASSWORD_DESCRIPTION': 'Rappelez-vous ce mot de passe. Il est nécessaire pour accéder au panneau d\'administration. Vous pouvez le modifier ultérieurement.',
'INSTALLATION_COMPLETED': 'Installation complétée.',
'INSTALLATION_COMPLETED_DESCRIPTION': 'L\'installation d\'OpenSupports est terminée. Redirection vers le panneau d\'administration ...',
'ADMIN_PASSWORD_DESCRIPTION': 'Ne perdez pas ce mot de passe. Il est nécessaire pour accéder au panel d\'administration. Vous pourrez le modifier ultérieurement.',
'INSTALLATION_COMPLETED': 'Installation terminée.',
'INSTALLATION_COMPLETED_DESCRIPTION': 'L\'installation d\'OpenSupports est terminée. Redirection vers le panel d\'administration...',
'STEP_TITLE': 'Étape {current} of {total} - {title}',
'STEP_1_DESCRIPTION': 'Sélectionnez la langue de votre choix pour l\'assistant d\'installation.',
'STEP_2_DESCRIPTION': 'Voici les conditions requises pour exécuter OpenSupports. Assurez-vous que toutes les exigences sont satisfaites.',
'STEP_2_DESCRIPTION': 'Voici les conditions requises pour exécuter OpenSupports. Assurez-vous que toutes les conditions requises soient satisfaites.',
'STEP_3_DESCRIPTION': 'Veuillez remplir la configuration de la base de données MySQL.',
'STEP_4_DESCRIPTION': 'Veuillez sélectionner les préférences de votre système utilisateur.',
'STEP_5_DESCRIPTION': 'Veuillez configurer le compte administrateur.',
'STEP_6_DESCRIPTION': 'L\'installation est terminée.',
//VIEW DESCRIPTIONS
'CREATE_TICKET_DESCRIPTION': 'Il s\'agit d\'un formulaire de création de billets. Remplissez le formulaire et envoyez-nous vos questions / doutes / suggestions. Notre système de support répondra le plus rapidement possible.',
'TICKET_LIST_DESCRIPTION': 'Vous trouverez ici une liste de tous les billets que vous avez envoyés à notre équipe d\'assistance.',
'CREATE_TICKET_DESCRIPTION': 'Il s\'agit d\'un formulaire de création de tickets. Remplissez le formulaire et envoyez-nous vos questions / doutes / suggestions. Notre système de support répondra le plus rapidement possible.',
'TICKET_LIST_DESCRIPTION': 'Vous trouverez ici une liste de tous les tickets que vous avez envoyés à notre équipe d\'assistance.',
'TICKETS_DESCRIPTION': 'Envoyez un ticket via notre centre de support et recevez la réponse de vos doutes, suggestions et problèmes.',
'ARTICLES_DESCRIPTION': 'Jetez un coup d\'oeil à nos articles sur les questions communes, les guides et la documentation.',
'ACCOUNT_DESCRIPTION': 'Tous vos billets sont stockés dans le profil de votre compte. Gardez une trace de tous vos billets que vous envoyez à notre équipe.',
'SUPPORT_CENTER_DESCRIPTION': 'Bienvenue dans notre centre de support. Vous pouvez nous contacter via un système de tickets. Vos billets seront répondu par notre personnel.',
'CUSTOM_RESPONSES_DESCRIPTION': 'Les réponses personnalisées sont des réponses automatisées pour des problèmes communs',
'MY_TICKETS_DESCRIPTION': 'Ici, vous pouvez afficher les billets dont vous êtes responsable.',
'NEW_TICKETS_DESCRIPTION': 'Ici, vous pouvez afficher tous les nouveaux billets qui ne sont pas attribués par quiconque.',
'ALL_TICKETS_DESCRIPTION': 'Ici, vous pouvez afficher les billets des départements que vous avez affectés.',
'TICKET_VIEW_DESCRIPTION': 'Ce billet a été envoyé par un client. Ici vous pouvez répondre ou assigner le billet',
'BAN_USERS_DESCRIPTION': 'Ici, vous pouvez voir une liste d\'e-mails interdits, vous pouvez les interdire ou les ajouter à la liste.',
'LIST_USERS_DESCRIPTION': 'Il s\'agit de la liste des utilisateurs enregistrés sur cette plate-forme. Vous pouvez rechercher quelqu\'un en particulier, le supprimer ou l\'interdire.',
'USER_VIEW_DESCRIPTION': 'Ici vous pouvez trouver toutes les informations sur un utilisateur et tous les billets envoyés par l\'utilisateur. Vous pouvez également supprimer ou interdire.',
'DELETE_USER_DESCRIPTION': 'L\'utilisateur ne sera pas en mesure de se connecter au vieillissement et tous ses billets seront effacés. En outre, le courrier électronique ne peut plus être utilisé.',
'DELETE_TOPIC_DESCRIPTION': 'En supprimant le sujet, tous les articles sur ce sujet seront effacés.',
'ARTICLES_DESCRIPTION': 'Jetez un coup d\'oeil à nos articles sur les questions courantes, les guides et la documentation.',
'ACCOUNT_DESCRIPTION': 'Tous vos tickets sont stockés dans le profil de votre compte. Gardez une trace de tous vos tickets que vous envoyez à notre équipe.',
'SUPPORT_CENTER_DESCRIPTION': 'Bienvenue dans notre centre de support. Vous pouvez nous contacter via un système de tickets. Notre équipe d\'assistance répondra à vos tickets.',
'CUSTOM_RESPONSES_DESCRIPTION': 'Les réponses personnalisées sont des réponses automatisées pour des problèmes courants',
'MY_TICKETS_DESCRIPTION': 'Ici, vous pouvez afficher les tickets dont vous êtes responsable.',
'NEW_TICKETS_DESCRIPTION': 'Ici, vous pouvez afficher tous les nouveaux tickets qui n\'ont pas été attribués.',
'ALL_TICKETS_DESCRIPTION': 'Ici, vous pouvez afficher les tickets assignés aux départements auxquels vous appartenez.',
'TICKET_VIEW_DESCRIPTION': 'Ce ticket a été envoyé par un client. Ici vous pouvez répondre ou assigner ce ticket',
'BAN_USERS_DESCRIPTION': 'Ici, vous pouvez voir la liste des e-mails qui ont été bannis. Vous pouvez en ajouter de nouveaux ou en supprimer de la liste.',
'LIST_USERS_DESCRIPTION': 'Il s\'agit de la liste des utilisateurs enregistrés sur cette plate-forme. Vous pouvez rechercher quelqu\'un en particulier, le supprimer ou le bannir.',
'USER_VIEW_DESCRIPTION': 'Ici vous pouvez trouver toutes les informations sur un utilisateur et tous les tickets envoyés par cet utilisateur. Vous pouvez également le supprimer ou le bannir.',
'DELETE_USER_DESCRIPTION': 'L\'utilisateur ne sera plus en mesure de se connecter et tous ses tickets seront effacés. En outre, le courrier électronique ne pourra plus être utilisé.',
'DELETE_TOPIC_DESCRIPTION': 'En supprimant le sujet, tous les articles correspondants seront effacés.',
'EDIT_TOPIC_DESCRIPTION': 'Ici, vous pouvez changer le nom, l\'icône et la couleur de l\'icône du sujet.',
'ADD_ARTICLE_DESCRIPTION': 'Ici vous pouvez ajouter un article qui sera disponible pour chaque utilisateur. Il sera ajouté à l\'intérieur de la catégorie {category}.',
'LIST_ARTICLES_DESCRIPTION': 'Il s\'agit d\'une liste d\'articles qui comprend des informations sur nos services.',
'ADD_ARTICLE_DESCRIPTION': 'Ici vous pouvez ajouter un article qui sera disponible pour tous les utilisateurs. Il sera ajouté à l\'intérieur de la catégorie {category}.',
'LIST_ARTICLES_DESCRIPTION': 'Il s\'agit d\'une liste d\'articles comprenant des informations sur nos services.',
'ADD_TOPIC_DESCRIPTION': 'Ici, vous pouvez ajouter un sujet qui fonctionne comme une catégorie pour les articles.',
'DELETE_ARTICLE_DESCRIPTION': 'Vous allez supprimer cet article pour toujours.',
'STAFF_MEMBERS_DESCRIPTION': 'Ici, vous pouvez voir qui sont vos membres du personnel.',
'ADD_STAFF_DESCRIPTION': 'Ici, vous pouvez ajouter des membres du personnel à vos équipes.',
'EDIT_STAFF_DESCRIPTION': 'Ici, vous pouvez modifier des informations sur un membre du personnel.',
'DELETE_ARTICLE_DESCRIPTION': 'Vous êtes sur le point de supprimer cet article définitivement.',
'STAFF_MEMBERS_DESCRIPTION': 'Ici, vous pouvez voir qui sont vos membres de l\'administation.',
'ADD_STAFF_DESCRIPTION': 'Ici, vous pouvez ajouter des membres de l\'administration à vos équipes.',
'EDIT_STAFF_DESCRIPTION': 'Ici, vous pouvez modifier des informations sur un membre de l\'administration.',
'MY_ACCOUNT_DESCRIPTION': 'Ici, vous pouvez modifier des informations vous concernant.',
'DEPARTMENTS_DESCRIPTION': 'Un département est un groupe où les billets peuvent aller. Ils sont utilisés pour catégoriser les billets. Vous pouvez les affecter à d\'autres membres du personnel.',
'DEPARTMENTS_DESCRIPTION': 'Un département est un groupe où les tickets peuvent être assignés. Ils sont utilisés pour catégoriser les tickets. Vous pouvez les assigner à d\'autres administrateurs.',
'MAINTENANCE_MODE_DESCRIPTION': 'Le système de support est en mode maintenance, donc indisponible pour le moment. Nous reviendrons dès que possible.',
'EMAIL_TEMPLATES_DESCRIPTION': 'Ici, vous pouvez modifier les modèles des e-mails qui seront envoyés aux utilisateurs. N\'oubliez pas que les doubles parenthèses des accolades indiquent une valeur variable. Par exemple, \'nom\' représente le nom de l\'utilisateur.',
'EMAIL_TEMPLATES_DESCRIPTION': 'Ici, vous pouvez modifier les modèles des e-mails qui seront envoyés aux utilisateurs. N\'oubliez pas que les doubles accolades indiquent une valeur variable. Par exemple, \'nom\' représente le nom de l\'utilisateur.',
'SYSTEM_PREFERENCES_DESCRIPTION': 'Ici, vous pouvez modifier les préférences du système.',
'VERIFY_SUCCESS_DESCRIPTION': 'Votre utilisateur a été correctement vérifié. Vous pouvez vous connecter maintenant.',
'VERIFY_FAILED_DESCRIPTION': 'La vérification n\'a pas pu être effectuée.',
'STATISTICS_DESCRIPTION': 'Ici, vous pouvez afficher les statistiques relatives aux billets et inscriptions..',
'ADVANCED_SETTINGS_DESCRIPTION': 'Ici, vous pouvez modifier les paramètres avancés de votre système. Attention, les modifications que vous effectuez ne peuvent pas être inversées.',
'STATISTICS_DESCRIPTION': 'Ici, vous pouvez afficher les statistiques relatives aux tickets et inscriptions.',
'ADVANCED_SETTINGS_DESCRIPTION': 'Ici, vous pouvez modifier les paramètres avancés de votre système. Attention, les modifications que vous effectuez sont irréversibles.',
'USER_SYSTEM_DISABLED': 'Le système utilisateur a été désactivé',
'USER_SYSTEM_ENABLED': 'Le système utilisateur a été activé',
'REGISTRATION_DISABLED': 'L\'enregistrement a été désactivé',
'REGISTRATION_ENABLED': 'L\'enregistrement a été activé',
'ADD_API_KEY_DESCRIPTION': 'Insérer le nom et générer une clé api d\'enregistrement.',
'SIGN_UP_VIEW_DESCRIPTION': 'Vous pouvez créer un compte pour notre centre de support. Il est nécessaire pour envoyer des billets et voir la documentation.',
'REGISTRATION_DISABLED': 'L\'inscription a été désactivé',
'REGISTRATION_ENABLED': 'L\'inscription a été activé',
'ADD_API_KEY_DESCRIPTION': 'Insérer le nom et générer une clé api d\'authentification.',
'SIGN_UP_VIEW_DESCRIPTION': 'Ici, vous pouvez créer un compte pour notre centre de support. Il est nécessaire pour soumettre des tickets et voir la documentation.',
'EDIT_PROFILE_VIEW_DESCRIPTION': 'Ici, vous pouvez modifier votre utilisateur en changeant votre adresse e-mail ou votre mot de passe.',
'ENABLE_USER_SYSTEM_DESCRIPTION': 'Activer / désactiver l\'utilisation d\'un système utilisateur. Si vous le désactivez, tous les utilisateurs seront supprimés, mais les tickets seront conservés. Si vous l\'activez, les utilisateurs des tickets existants seront créés.',
'CSV_DESCRIPTION': 'Le fichier CSV doit comporter 3 colonnes: email, mot de passe, nom. Il n\'y a pas de limite dans le nombre de lignes. Il sera créé un utilisateur par ligne dans le fichier.',
//ERRORS
'EMAIL_OR_PASSWORD': 'E-mail ou mot de passe non valide',
'EMAIL_OR_PASSWORD': 'E-mail ou mot de passe invalide',
'EMAIL_NOT_EXIST': 'Le courriel n\'existe pas',
'ERROR_EMPTY': 'valeur invalide',
'ERROR_EMPTY': 'Valeur invalide',
'ERROR_PASSWORD': 'Mot de passe incorrect',
'ERROR_NAME': 'Nom incorrect',
'ERROR_TITLE': 'Titre invalide',
'ERROR_TITLE': 'Titre incorrect',
'ERROR_EMAIL': 'Email invalide',
'ERROR_CONTENT_SHORT': 'Contenu trop court',
'PASSWORD_NOT_MATCH': 'Le mot de passe ne correspond pas',
'INVALID_RECOVER': 'Données de récupération non valides',
'TICKET_SENT_ERROR': 'Une erreur s\'est produite lors de la tentative de création le billet.',
'TICKET_SENT_ERROR': 'Une erreur s\'est produite lors de la création du ticket.',
'TICKET_COMMENT_ERROR': 'Une erreur s\'est produite lors de l\'ajout du commentaire.',
'NO_PERMISSION': 'Vous n\'êtes pas autorisé à accéder à cette page.',
'INVALID_USER': 'L\'identifiant d\'utilisateur n\'est pas valide',
'ERROR_RETRIEVING_TICKETS': 'Une erreur s\'est produite lors de la récupération des tickets.',
'ERROR_RETRIEVING_USERS': 'Une erreur s\'est produite lors de la tentative de récupération des utilisateurs.',
'ERROR_RETRIEVING_BAN_LIST': 'Une erreur s\'est produite lors de la récupération de la liste des e-mails interdits.',
'ERROR_RETRIEVING_USERS': 'Une erreur s\'est produite lors de la récupération des utilisateurs.',
'ERROR_RETRIEVING_BAN_LIST': 'Une erreur s\'est produite lors de la récupération de la liste des e-mails bannis.',
'ERROR_BANNING_EMAIL': 'Une erreur s\'est produite lors de la tentative d\'interdiction du courrier électronique.',
'ERROR_RETRIEVING_ARTICLES': 'Une erreur s\'est produite lors de la tentative de récupération d\'articles.',
'ERROR_LIST': 'Sélectionnez au moins un',
'ERROR_RETRIEVING_ARTICLES': 'Une erreur s\'est produite lors de la récupération des articles.',
'ERROR_LIST': 'Sélectionnez-en au moins un',
'ERROR_URL': 'URL invalide',
'UNVERIFIED_EMAIL': 'Le courriel n\'a pas encore été validé',
'ERROR_UPDATING_SETTINGS': 'Une erreur s\'est produite lors de la tentative de mise à jour des paramètres',
'INVALID_EMAIL_OR_TICKET_NUMBER': 'Numéro de courriel ou de billet incorrect',
'INVALID_FILE': 'Fichier non valide',
'ERRORS_FOUND': 'Erreurs trouvées',
'ERROR_UPDATING_SETTINGS': 'Une erreur s\'est produite lors de la mise à jour des paramètres',
'INVALID_EMAIL_OR_TICKET_NUMBER': 'Numéro de courriel ou de ticket invalide',
'INVALID_FILE': 'Fichier invalide',
'ERRORS_FOUND': 'Des erreurs sont survenues',
//MESSAGES
'SIGNUP_SUCCESS': 'Vous êtes enregistré avec succès dans notre système de support.',
'SIGNUP_SUCCESS': 'Vous êtes inscrit avec succès dans notre système de support.',
'TICKET_SENT': 'Le ticket a été créé avec succès.',
'VALID_RECOVER': 'Mot de passe récupéré avec succès',
'EMAIL_EXISTS': 'l\'email existe déjà',
'ARE_YOU_SURE': 'Êtes-vous sûr?',
'EMAIL_EXISTS': 'L\'email existe déjà',
'ARE_YOU_SURE': 'Êtes-vous sûr ?',
'EMAIL_WILL_CHANGE': 'L\'e-mail actuel sera modifié',
'PASSWORD_WILL_CHANGE': 'Le mot de passe actuel sera modifié',
'EMAIL_CHANGED': 'Le courrier électronique a été modifié avec succès',
'PASSWORD_CHANGED': 'Le mot de passe a été modifié avec succès',
'OLD_PASSWORD_INCORRECT': 'Ancien mot de passe est incorrect',
'WILL_LOSE_CHANGES': 'Vous n\'avez pas épargné. Vos modifications seront perdues.',
'OLD_PASSWORD_INCORRECT': 'Ancien mot de passe incorrect',
'WILL_LOSE_CHANGES': 'Vous n\'avez pas enregistrés vos modifications. Ces dernières seront perdues.',
'WILL_DELETE_CUSTOM_RESPONSE': 'La réponse personnalisée sera supprimée.',
'WILL_DELETE_DEPARTMENT': 'Le département sera supprimé. Tous les billets seront transférés au département sélectionné.',
'NO_STAFF_ASSIGNED': 'Aucun membre du personnel n\'est affecté à ce service.',
'LEVEL_UPDATED': 'Niveau a été mis à jour avec succès.',
'WILL_DELETE_DEPARTMENT': 'Le département sera supprimé. Tous les tickets seront transférés au département sélectionné.',
'NO_STAFF_ASSIGNED': 'Aucun membre de l\'administration n\'est affecté à ce service.',
'LEVEL_UPDATED': 'Le niveau a été mis à jour avec succès.',
'DEPARTMENTS_UPDATED': 'Les départements ont été mis à jour avec succès.',
'FAILED_EDIT_STAFF': 'Une erreur s\'est produite lors de la tentative de modification du membre du personnel.',
'EMAIL_BANNED_SUCCESSFULLY': 'Le courriel a été interdit avec succès',
'WILL_DELETE_STAFF': 'Ce membre du personnel sera supprimé et tous ses billets seront non affectés.',
'WILL_RECOVER_EMAIL_TEMPLATE': 'Ce modèle de courrier électronique récupérera sa valeur par défaut sur cette langue.',
'FAILED_EDIT_STAFF': 'Une erreur s\'est produite lors de la tentative de modification de l\'administrateur.',
'EMAIL_BANNED_SUCCESSFULLY': 'Le courriel a été banni avec succès',
'WILL_DELETE_STAFF': 'Cet administrateur sera supprimé et tous ses tickets ne seront plus assignés.',
'WILL_RECOVER_EMAIL_TEMPLATE': 'Ce modèle de courrier électronique sera réinitialisé à sa valeur par défaut pour cette langue.',
'SUCCESS_IMPORTING_CSV_DESCRIPTION': 'Le fichier CSV a été importé avec succès',
'SUCCESS_DELETING_ALL_USERS': 'Les utilisateurs ont été supprimés avec succès',
@ -343,17 +343,17 @@ export default {
'LAST_90_DAYS': 'Les 90 derniers jours',
'LAST_365_DAYS': 'Les 365 derniers jours',
'ACTIVITY_COMMENT_THIS': 'commenté ce ticket',
'ACTIVITY_ASSIGN_THIS': 'assigné ce ticket',
'ACTIVITY_UN_ASSIGN_THIS': 'non affecté ce ticket',
'ACTIVITY_CLOSE_THIS': 'fermé ce ticket',
'ACTIVITY_CREATE_TICKET_THIS': 'créé ce ticket',
'ACTIVITY_RE_OPEN_THIS': 'rouvert ce ticket',
'ACTIVITY_DEPARTMENT_CHANGED_THIS': 'changement de département de ce ticket vers',
'ACTIVITY_PRIORITY_CHANGED_THIS': 'priorité changée de ce ticket vers',
'ACTIVITY_COMMENT_THIS': 'a commenté ce ticket',
'ACTIVITY_ASSIGN_THIS': 'a assigné ce ticket',
'ACTIVITY_UN_ASSIGN_THIS': 'a supprimé l\'assignation de ce ticket',
'ACTIVITY_CLOSE_THIS': 'a fermé ce ticket',
'ACTIVITY_CREATE_TICKET_THIS': 'a créé ce ticket',
'ACTIVITY_RE_OPEN_THIS': 'a réouvert ce ticket',
'ACTIVITY_DEPARTMENT_CHANGED_THIS': 'a changé le département de ce ticket pour',
'ACTIVITY_PRIORITY_CHANGED_THIS': 'a changé la priorité de ce ticket pour',
'DATE_PREFIX': 'le',
'LEFT_EMPTY_DATABASE': 'Gauche vide pour la création automatique de la base de données',
'REMEMBER_ME': 'Rappelles toi',
'LEFT_EMPTY_DATABASE': 'Laisser vide pour la création automatique de la base de données',
'REMEMBER_ME': 'Se souvenir de moi',
'EMAIL_LOWERCASE': 'email',
'PASSWORD_LOWERCASE': 'mot de passe'
};

View File

@ -1,6 +1,6 @@
<?php
$url = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']);
$path = dirname($_SERVER['PHP_SELF']);
$path = rtrim(dirname($_SERVER['PHP_SELF']), '/');
$url = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $path;
?>
<!doctype html>
<html class="no-js" lang="">
@ -25,4 +25,4 @@
</script>
<script src="<?=$url ?>/js/main.js"></script>
</body>
</html>
</html>

View File

@ -35,11 +35,11 @@ class ConfigReducer extends Reducer {
const currentLanguage = sessionStore.getItem('language');
sessionStore.storeConfigs(_.extend({}, payload.data, {
language: currentLanguage || payload.language
language: currentLanguage || payload.data.language
}));
return _.extend({}, state, payload.data, {
language: currentLanguage || payload.language,
language: currentLanguage || payload.data.language,
registration: !!(payload.data.registration * 1),
'user-system-enabled': !!(payload.data['user-system-enabled']* 1),
'allow-attachments': !!(payload.data['allow-attachments']* 1),
@ -56,4 +56,4 @@ class ConfigReducer extends Reducer {
}
}
export default ConfigReducer.getInstance();
export default ConfigReducer.getInstance();

40
server/API_STANDARD.md Normal file
View File

@ -0,0 +1,40 @@
OpenSupports can work completely fine without a frontend. You could only use this API to manage the system.
This documentation is intended for application developers who are looking to integrate OpenSupports with other applications.
## Request/Response Interface
The API server is located in the `api/` folder of your OpenSupports' instance folder.
**All the requests must be done via POST method**, with the exception of the path `/system/download`.
The response object has the following JSON structure:
```
{
status: ["success"/"fail"],
message: [String],
data: [Object/Array/String]
}
```
* `status` indicates `"success"` if the request succeeded, else contains `"fail"`
* `message` contains the message in case of failure.
* `data` contains the returned data of the request.
For each path, we will document first the *Parameters*, then the *success* content of the property `data`, and finally the possible error messages it can return.
## Session Permissions
Some paths will not work if you're not logged in.
All paths have documented a *"Permission"* that can be:
* *any:* anyone can do a request, even if it's not logged in.
* *user:* only logged regular users can do the request.
* *staff1:* only a logged staff member with at least level 1 can do the request.
* *staff2:* only a logged staff member with at least level 2 can do the request.
* *staff3:* only a logged staff member with at least level 3 can do the request.
To login, user or staff, you have to make a request to [/user/login](#api-User-Login)
This request will return you the session data with an `userId` and a `token`. You will use these to validate the session every time you make a request that requires a logged user.
**All the paths that have permission `user`, `staff1`, `staff2` or `staff3`, require *userId* and *token* to be passed as parameter**. You need to pass them as `csrf_userid` and `csrf_token` respectively.
If you don't pass the userId and token, a `NO_PERMISSION` error will be returned.
Additionally, if there is no users (only staff members), you can check a ticket you created by providing your email and the ticketNumber to the `/ticket/check` path. This path will return you a `token` and `ticketNumber` you will use to comment, retrieve, or do any other operations to the ticket.

10
server/apidoc.json Normal file
View File

@ -0,0 +1,10 @@
{
"name": "OpenSupports API Documentation",
"version": "4.0.0",
"title": "OpenSupports API Documentation",
"description": "Backend API documentation for developers.",
"header": {
"title": "API Standards",
"filename": "API_STANDARD.md"
}
}

View File

@ -3,15 +3,16 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true);
/**
* @api {post} /article/add-topic Add a new topic.
* @api {post} /article/add-topic Add topic
* @apiVersion 4.0.0
*
* @apiName Add topic
*
* @apiGroup article
* @apiGroup Article
*
* @apiDescription This path adds a new topic.
*
* @apiPermission Staff level 2
* @apiPermission staff2
*
* @apiParam {String} name Name of the new topic.
* @apiParam {String} icon Icon of the new topic.

View File

@ -3,15 +3,16 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true);
/**
* @api {post} /article/add Add a article.
* @api {post} /article/add Add article
* @apiVersion 4.0.0
*
* @apiName Add
* @apiName Add article
*
* @apiGroup article
* @apiGroup Article
*
* @apiDescription This path adds a new article.
*
* @apiPermission Staff level 2
* @apiPermission staff2
*
* @apiParam {String} title Title of the new article.
* @apiParam {String} content Content of the new article.

View File

@ -3,15 +3,16 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true);
/**
* @api {post} /article/delete-topic Delete a topic.
* @api {post} /article/delete-topic Delete topic
* @apiVersion 4.0.0
*
* @apiName Delete topic
*
* @apiGroup article
* @apiGroup Article
*
* @apiDescription This path deletes a topic.
*
* @apiPermission Staff level 2
* @apiPermission staff2
*
* @apiParam {Number} topicId Id of the topic.
*

View File

@ -3,15 +3,16 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true);
/**
* @api {post} /article/delete Delete a article.
* @api {post} /article/delete Delete article
* @apiVersion 4.0.0
*
* @apiName Delete
* @apiName Delete article
*
* @apiGroup article
* @apiGroup Article
*
* @apiDescription This path deletes a article.
* @apiDescription This path deletes an article.
*
* @apiPermission Staff level 2
* @apiPermission staff2
*
* @apiParam {Number} articleId Id of the article.
*

View File

@ -3,20 +3,21 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true);
/**
* @api {post} /article/edit-topic Edit a topic.
* @api {post} /article/edit-topic Edit topic
* @apiVersion 4.0.0
*
* @apiName Edit topic
*
* @apiGroup article
* @apiGroup Article
*
* @apiDescription This path edits a topic.
*
* @apiPermission Staff level 2
* @apiPermission staff2
*
* @apiParam {Number} topicId Id of the topic.
* @apiParam {String} name The new name of the topic.
* @apiParam {String} icon The new icon of the topic.
* @apiParam {String} iconColor The new Icon's color of the topic.
* @apiParam {String} name The new name of the topic. Optional.
* @apiParam {String} icon The new icon of the topic. Optional.
* @apiParam {String} iconColor The new Icon's color of the topic. Optional.
*
* @apiUse NO_PERMISSION
* @apiUse INVALID_TOPIC

View File

@ -3,21 +3,22 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true);
/**
* @api {post} /article/edit Edit a article.
* @api {post} /article/edit Edit article
* @apiVersion 4.0.0
*
* @apiName Edit a article
*
* @apiGroup article
* @apiGroup Article
*
* @apiDescription This path edits a article.
* @apiDescription This path edits an article.
*
* @apiPermission Staff level 2
* @apiPermission staff2
*
* @apiParam {Number} articleId Id of the article.
* @apiParam {Number} topicId Id of the topic of the article.
* @apiParam {String} content The new content of the article.
* @apiParam {String} title The new title of the article.
* @apiParam {Number} position The new position of the article.
* @apiParam {Number} topicId Id of the topic of the article. Optional.
* @apiParam {String} content The new content of the article. Optional.
* @apiParam {String} title The new title of the article. Optional.
* @apiParam {Number} position The new position of the article. Optional.
*
* @apiUse NO_PERMISSION
* @apiUse INVALID_TOPIC

View File

@ -3,11 +3,12 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true);
/**
* @api {post} /article/get-all Retrieve all articles.
* @api {post} /article/get-all Get all articles
* @apiVersion 4.0.0
*
* @apiName Get all
* @apiName Get all articles
*
* @apiGroup article
* @apiGroup Article
*
* @apiDescription This path retrieves all the articles.
*

View File

@ -3,22 +3,23 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true);
/**
* @api {post} /staff/add Add a new staff member.
* @api {post} /staff/add Add staff
* @apiVersion 4.0.0
*
* @apiName Add
* @apiName Add staff
*
* @apiGroup staff
* @apiGroup Staff
*
* @apiDescription This path add a new staff member.
* @apiDescription This path adds a new staff member.
*
* @apiPermission Staff level 3
* @apiPermission staff3
*
* @apiParam {String} name The name of the new staff member.
* @apiParam {String} email The email of the new staff member.
* @apiParam {String} password The password of the new staff member.
* @apiParam {Number} level The level of the new staff member.
* @apiParam {String} profilePic The profile pic of the new staff member.
* @apiParam {String} departments The departments that will have assigned the new staff member.
* @apiParam {Number[]} departments The departments that will have assigned the new staff member.
*
* @apiUse NO_PERMISSION
* @apiUse INVALID_NAME

View File

@ -3,15 +3,16 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true);
/**
* @api {post} /staff/assign-ticket Assign a ticket to a staff member.
* @api {post} /staff/assign-ticket Assign ticket
* @apiVersion 4.0.0
*
* @apiName Assign ticket
*
* @apiGroup staff
* @apiGroup Staff
*
* @apiDescription This path assigns a ticket to a staff member.
*
* @apiPermission Staff level 1
* @apiPermission staff1
*
* @apiParam {Number} ticketNumber The number of the ticket to assign.
*

View File

@ -3,15 +3,16 @@ use Respect\Validation\Validator as DataValidator;
use RedBeanPHP\Facade as RedBean;
/**
* @api {post} /staff/delete Delete a staff member.
* @api {post} /staff/delete Delete staff
* @apiVersion 4.0.0
*
* @apiName Delete
* @apiName Delete staff
*
* @apiGroup staff
* @apiGroup Staff
*
* @apiDescription This path deletes a staff member.
*
* @apiPermission Staff level 3
* @apiPermission staff3
*
* @apiParam {Number} staffId The id of the staff member.
*

View File

@ -2,21 +2,22 @@
use Respect\Validation\Validator as DataValidator;
/**
* @api {post} /staff/edit Edit a staff member.
* @api {post} /staff/edit Edit staff
* @apiVersion 4.0.0
*
* @apiName Edit
* @apiName Edit staff
*
* @apiGroup staff
* @apiGroup Staff
*
* @apiDescription This path edits a staff member .
* @apiDescription This path edits a staff member.
*
* @apiPermission Staff level 1
* @apiPermission staff1
*
* @apiParam {Number} staffId Id of the staff.
* @apiParam {String} departments The name of the departments to change.
* @apiParam {String} email The new email of the staff member.
* @apiParam {String} password The new password of the staff member.
* @apiParam {Number} level The new level of the staff member.
* @apiParam {String} departments The name of the departments to change. Optional.
* @apiParam {String} email The new email of the staff member. Optional.
* @apiParam {String} password The new password of the staff member. Optional.
* @apiParam {Number} level The new level of the staff member. Optional.
*
* @apiUse NO_PERMISSION
* @apiUse INVALID_STAFF

View File

@ -2,24 +2,25 @@
use Respect\Validation\Validator as DataValidator;
/**
* @api {post} /staff/get-all-tickets Retrieve all tickets.
* @api {post} /staff/get-all-tickets Get all tickets
* @apiVersion 4.0.0
*
* @apiName Get all tickets
*
* @apiGroup staff
* @apiGroup Staff
*
* @apiDescription This path retrieves all tickets created.
* @apiDescription This path retrieves all tickets.
*
* @apiPermission Staff level 1
* @apiPermission staff1
*
* @apiParam {Number} page The page's number that it's looking for.
* @apiParam {Number} page The page number.
*
* @apiUse NO_PERMISSION
* @apiUse INVALID_PAGE
*
* @apiSuccess {Object} data Information about a tickets and quantity of pages
* @apiSuccess {[Ticket](#api-Data_Structures-ObjectTicket)[]} data.tickets Array of tickets of the current page
* @apiSuccess {Number} data.pages Quantity of pages
* @apiSuccess {Object} data Information about a tickets and quantity of pages.
* @apiSuccess {[Ticket](#api-Data_Structures-ObjectTicket)[]} data.tickets Array of tickets of the current page.
* @apiSuccess {Number} data.pages Quantity of pages.
*
*/

View File

@ -2,15 +2,16 @@
use Respect\Validation\Validator as DataValidator;
/**
* @api {post} /staff/get-all Retrieve information about all the staff members.
* @api {post} /staff/get-all Get all staffs
* @apiVersion 4.0.0
*
* @apiName Get all
* @apiName Get all staffs
*
* @apiGroup staff
* @apiGroup Staff
*
* @apiDescription This path retrieves information about all the staff member.
*
* @apiPermission Staff level 3
* @apiPermission staff3
*
* @apiUse NO_PERMISSION
*

View File

@ -3,19 +3,20 @@ use RedBeanPHP\Facade as RedBean;
use Respect\Validation\Validator as DataValidator;
/**
* @api {post} /staff/get-new-tickets Retrieve new tickets.
* @api {post} /staff/get-new-tickets Get new tickets
* @apiVersion 4.0.0
*
* @apiName Get new tickets
*
* @apiGroup staff
* @apiGroup Staff
*
* @apiDescription This path retrieves new tickets.
* @apiDescription This path retrieves the new tickets of the departments the staff has assigned.
*
* @apiPermission Staff level 1
* @apiPermission staff1
*
* @apiUse NO_PERMISSION
*
* @apiSuccess {[Ticket](#api-Data_Structures-ObjectTicket)[]} data Array of new tickets
* @apiSuccess {[Ticket](#api-Data_Structures-ObjectTicket)[]} data Array of new tickets.
*
*/

View File

@ -2,15 +2,16 @@
use Respect\Validation\Validator as DataValidator;
/**
* @api {post} /staff/get-tickets Retrieve own tickets.
* @api {post} /staff/get-tickets Get tickets
* @apiVersion 4.0.0
*
* @apiName Get tickets
*
* @apiGroup staff
* @apiGroup Staff
*
* @apiDescription This path retrieves the tickets of current staff member.
* @apiDescription This path retrieves the tickets assigned to the current staff member.
*
* @apiPermission Staff level 1
* @apiPermission staff1
*
* @apiUse NO_PERMISSION
*

View File

@ -3,17 +3,18 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true);
/**
* @api {post} /staff/get Retrieve information about a staff member.
* @api {post} /staff/get Get staff
* @apiVersion 4.0.0
*
* @apiName Get
* @apiName Get staff
*
* @apiGroup staff
* @apiGroup Staff
*
* @apiDescription This path retrieves information about a staff member .
* @apiDescription This path retrieves information about a staff member.
*
* @apiPermission Staff level 1
* @apiPermission staff1
*
* @apiParam {Number} staffId The id of the staff member searched.
* @apiParam {Number} staffId The id of the staff member to be searched.
*
* @apiUse NO_PERMISSION
*

View File

@ -2,17 +2,18 @@
use Respect\Validation\Validator as DataValidator;
/**
* @api {post} /staff/last-events Retrieve the last events.
* @api {post} /staff/last-events Get last events
* @apiVersion 4.0.0
*
* @apiName Last events
* @apiName Get last events
*
* @apiGroup staff
* @apiGroup Staff
*
* @apiDescription This path retrieves the last events.
*
* @apiPermission Staff level 1
* @apiPermission staff1
*
* @apiParam {Number} page The page's number of the list.
* @apiParam {Number} page The page number.
*
* @apiUse NO_PERMISSION
* @apiUse INVALID_PAGE

View File

@ -2,18 +2,19 @@
use Respect\Validation\Validator as DataValidator;
/**
* @api {post} /staff/search-tickets Search some tickets.
* @api {post} /staff/search-tickets Search tickets
* @apiVersion 4.0.0
*
* @apiName Search tickets
*
* @apiGroup staff
* @apiGroup Staff
*
* @apiDescription This path search some tickets.
*
* @apiPermission Staff level 1
* @apiPermission staff1
*
* @apiParam {String} query Key to search.
* @apiParam {Number} page The number of page.
* @apiParam {String} query Query string to search.
* @apiParam {Number} page The page number.
*
* @apiUse NO_PERMISSION
* @apiUse INVALID_QUERY
@ -21,7 +22,7 @@ use Respect\Validation\Validator as DataValidator;
*
* @apiSuccess {Object} data Information about tickets
* @apiSuccess {[Ticket](#api-Data_Structures-ObjectTicket)[]} data.tickets Array of tickets found
* @apiSuccess {Number} data.pages Number of the page
* @apiSuccess {Number} data.pages Number of pages
*
*/

View File

@ -3,15 +3,16 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true);
/**
* @api {post} /staff/un-assign-ticket Un-assign a ticket.
* @api {post} /staff/un-assign-ticket Un-assign ticket
* @apiVersion 4.0.0
*
* @apiName Un-assign ticket
*
* @apiGroup staff
* @apiGroup Staff
*
* @apiDescription This path un assign a ticket of a staff member.
* @apiDescription This path un-assigns a ticket to the current staff member.
*
* @apiPermission Staff level 1
* @apiPermission staff1
*
* @apiParam {Number} ticketNumber Ticket number to un-assign.
*

View File

@ -2,23 +2,24 @@
use Respect\Validation\Validator as DataValidator;
/**
* @api {post} /system/add-api-key Create a new api-key.
* @api {post} /system/add-api-key Add APIKey
* @apiVersion 4.0.0
*
* @apiName Add api-key
* @apiName Add APIKey
*
* @apiGroup system
* @apiGroup System
*
* @apiDescription This path create a new api-key.
* @apiDescription This path creates a new APIKey.
*
* @apiPermission Staff level 3
* @apiPermission staff3
*
* @apiParam {String} name Name of the new api-key.
* @apiParam {String} name Name of the new APIKey.
*
* @apiUse NO_PERMISSION
* @apiUse INVALID_NAME
* @apiUse NAME_ALREADY_USED
*
* @apiSuccess {String} data Token of the api key
* @apiSuccess {String} data Token of the APIKey.
*
*/

View File

@ -2,15 +2,16 @@
use Respect\Validation\Validator as DataValidator;
/**
* @api {post} /system/add-department Create a new department.
* @api {post} /system/add-department Add department
* @apiVersion 4.0.0
*
* @apiName Add department
*
* @apiGroup system
* @apiGroup System
*
* @apiDescription This path create a new department.
*
* @apiPermission Staff level 3
* @apiPermission staff3
*
* @apiParam {String} name Name of the new department.
*

View File

@ -2,15 +2,16 @@
use Ifsnop\Mysqldump as IMysqldump;
/**
* @api {post} /system/backup-database Do a backup of the database.
* @api {post} /system/backup-database Backup database
* @apiVersion 4.0.0
*
* @apiName Backup database
*
* @apiGroup system
* @apiGroup System
*
* @apiDescription This path do a backup of the database.
* @apiDescription This path does a backup of the database.
*
* @apiPermission Staff level 3
* @apiPermission staff3
*
* @apiUse NO_PERMISSION
*

View File

@ -1,13 +1,14 @@
<?php
/**
* @api {post} /system/check-requirements Checks and retrieves the current requirements.
* @api {post} /system/check-requirements Checks requirements
* @apiVersion 4.0.0
*
* @apiName Check requirements
*
* @apiGroup system
* @apiGroup System
*
* @apiDescription This path checks and retrieves the current requirements.
* @apiDescription This path checks and retrieves the current requirements for the installation.
*
* @apiPermission any
*

View File

@ -1,17 +1,18 @@
<?php
/**
* @api {post} /system/csv-import Receives a csv file with a list of users to signup .
* @api {post} /system/csv-import CSV import
* @apiVersion 4.0.0
*
* @apiName CSV import
*
* @apiGroup system
* @apiGroup System
*
* @apiDescription This path receives a csv file with a list of users to signup.
*
* @apiPermission Staff level 3
* @apiPermission staff3
*
* @apiParam {String} file A csv file with this content format: email,password, name.
* @apiParam {String} file A csv file with this content format: email, password, name.
*
* @apiUse NO_PERMISSION
* @apiUse INVALID_FILE

View File

@ -2,15 +2,16 @@
use RedBeanPHP\Facade as RedBean;
/**
* @api {post} /system/delete-all-users Delete all users in database.
* @api {post} /system/delete-all-users Delete all users
* @apiVersion 4.0.0
*
* @apiName Delete all users
*
* @apiGroup system
* @apiGroup System
*
* @apiDescription This path delete all users in database.
* @apiDescription This path deletes all users in database.
*
* @apiPermission Staff level 3
* @apiPermission staff3
*
* @apiParam {String} password The password of the current staff.
*

View File

@ -2,17 +2,18 @@
use Respect\Validation\Validator as DataValidator;
/**
* @api {post} /system/delete-api-key Delete a api-key.
* @api {post} /system/delete-api-key Delete APIKey
* @apiVersion 4.0.0
*
* @apiName Delete api-key
* @apiName Delete APIKey
*
* @apiGroup system
* @apiGroup System
*
* @apiDescription This path delete a api-key.
* @apiDescription This path deletes an APIKey.
*
* @apiPermission Staff level 3
* @apiPermission staff3
*
* @apiParam {String} name Name of the api-key to delete.
* @apiParam {String} name Name of the APIKey to delete.
*
* @apiUse NO_PERMISSION
* @apiUse INVALID_NAME

View File

@ -3,17 +3,18 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true);
/**
* @api {post} /system/delete-department Delete a department.
* @api {post} /system/delete-department Delete department
* @apiVersion 4.0.0
*
* @apiName Delete department
*
* @apiGroup system
* @apiGroup System
*
* @apiDescription This path delete a department.
* @apiDescription This path deletes a department.
*
* @apiPermission Staff level 3
* @apiPermission staff3
*
* @apiParam {Number} departmentId Id of the department to delete.
* @apiParam {Number} departmentId Id of the department to be deleted.
* @apiParam {Number} transferDepartmentId Id of the department where the tickets will be transfer to.
*
* @apiUse NO_PERMISSION

View File

@ -1,15 +1,16 @@
<?php
/**
* @api {post} /system/disable-registration Disable the registration.
* @api {post} /system/disable-registration Disable registration
* @apiVersion 4.0.0
*
* @apiName Disable registration
*
* @apiGroup system
* @apiGroup System
*
* @apiDescription This path disable the registration.
* @apiDescription This path disables the registration.
*
* @apiPermission Staff level 3
* @apiPermission staff3
*
* @apiParam {String} password The password of the current staff.
*

View File

@ -1,15 +1,16 @@
<?php
/**
* @api {post} /system/disable-user-system Disable the user system.
* @api {post} /system/disable-user-system Disable user system
* @apiVersion 4.0.0
*
* @apiName Disable user system
*
* @apiGroup system
* @apiGroup System
*
* @apiDescription This path disable the user system.
* @apiDescription This path disables the user system.
*
* @apiPermission Staff level 3
* @apiPermission staff3
*
* @apiParam {String} password The password of the current staff.
*

View File

@ -2,6 +2,25 @@
use Ifsnop\Mysqldump as IMysqldump;
use Respect\Validation\Validator as DataValidator;
/**
* @api {get} /system/download Download file
* @apiVersion 4.0.0
*
* @apiName Download file
*
* @apiGroup System
*
* @apiDescription This path downloads a file.
*
* @apiPermission any
*
* @apiParam {String} file The filename to be downloaded.
*
*
* @apiSuccess {Object} file File content
*
*/
class DownloadController extends Controller {
const PATH = '/download';
const METHOD = 'GET';

View File

@ -3,18 +3,18 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true);
/**
* @api {post} /system/edit-department Edit a department.
* @api {post} /system/edit-department Edit department
* @apiVersion 4.0.0
*
* @apiName Edit department
*
* @apiGroup system
* @apiGroup System
*
* @apiDescription This path edit a department created.
* @apiDescription This path edits a department's name.
*
* @apiPermission Staff level 3
* @apiPermission staff3
*
* @apiParam {String} name The new name of the department.
*
* @apiParam {Number} departmentId The Id of the department.
*
* @apiUse NO_PERMISSION

View File

@ -2,15 +2,16 @@
use Respect\Validation\Validator as DataValidator;
/**
* @api {post} /system/edit-mail-template Edit a mail template.
* @api {post} /system/edit-mail-template Edit mail template
* @apiVersion 4.0.0
*
* @apiName Edit mail template
*
* @apiGroup system
* @apiGroup System
*
* @apiDescription This path edit a mail template.
*
* @apiPermission Staff level 3
* @apiPermission staff3
*
* @apiParam {String} templateType The new type of the template.
* @apiParam {String} language The new language of the template.

View File

@ -1,19 +1,20 @@
<?php
/**
* @api {post} /system/edit-settings Edit the settings of the system.
* @api {post} /system/edit-settings Edit settings
* @apiVersion 4.0.0
*
* @apiName Edit settings
*
* @apiGroup system
* @apiGroup System
*
* @apiDescription This path edit the settings of the system.
*
* @apiPermission Staff level 3
* @apiPermission staff3
*
* @apiParam {String} allowedLanguages The list of languages allowed.
* @apiParam {String} supportedLanguages The list of languages supported.
* @apiParam {String} settings A list this content format: language, recaptcha-public, recaptcha-private, no-reply-email, smtp-host, smtp-port, smtp-user, smtp-pass, time-zone, maintenance-mode, layout, allow-attachments, max-size, title, url.
* @apiParam {Setting} setting A setting can be any of the following: language, recaptcha-public, recaptcha-private, no-reply-email, smtp-host, smtp-port, smtp-user, smtp-pass, time-zone, maintenance-mode, layout, allow-attachments, max-size, title, url.
*
* @apiUse NO_PERMISSION
*

View File

@ -2,15 +2,16 @@
use Respect\Validation\Validator as DataValidator;
/**
* @api {post} /system/enable-registration Enable the registration.
* @api {post} /system/enable-registration Enable registration
* @apiVersion 4.0.0
*
* @apiName Enable registration
*
* @apiGroup system
* @apiGroup System
*
* @apiDescription This path enable the registration.
* @apiDescription This path enables the registration.
*
* @apiPermission Staff level 3
* @apiPermission staff3
*
* @apiParam {String} password The password of the current staff.
*

View File

@ -1,15 +1,16 @@
<?php
/**
* @api {post} /system/enable-user-system Enable user system.
* @api {post} /system/enable-user-system Enable user system
* @apiVersion 4.0.0
*
* @apiName Enable user system
*
* @apiGroup system
* @apiGroup System
*
* @apiDescription This path enable the user system.
* @apiDescription This path enables the user system.
*
* @apiPermission Staff level 3
* @apiPermission staff3
*
* @apiParam {String} password The password of the current staff.
*

View File

@ -2,19 +2,20 @@
use Respect\Validation\Validator as DataValidator;
/**
* @api {post} /system/get-api-keys Retrieve api keys.
* @api {post} /system/get-api-keys Get APIKeys
* @apiVersion 4.0.0
*
* @apiName Get api keys
* @apiName Get APIKeys
*
* @apiGroup system
* @apiGroup System
*
* @apiDescription This path retrieves the all api keys.
* @apiDescription This path retrieves the all APIKeys.
*
* @apiPermission Staff level 3
* @apiPermission staff3
*
* @apiUse NO_PERMISSION
*
* @apiSuccess {[APIKey](#api-Data_Structures-ObjectApikey)[]} data Array of api keys
* @apiSuccess {[APIKey](#api-Data_Structures-ObjectApikey)[]} data Array of APIKeys
*
*/

View File

@ -2,15 +2,16 @@
use Respect\Validation\Validator as DataValidator;
/**
* @api {post} /system/get-logs retrieve logs.
* @api {post} /system/get-logs Get logs
* @apiVersion 4.0.0
*
* @apiName Get logs
*
* @apiGroup system
* @apiGroup System
*
* @apiDescription This path retrieves the all logs.
* @apiDescription This path retrieves the all the logs.
*
* @apiPermission Staff level 1
* @apiPermission staff1
*
* @apiParam {Number} page The page of logs.
*

View File

@ -2,15 +2,16 @@
use Respect\Validation\Validator as DataValidator;
/**
* @api {post} /system/get-mail-templates Retrieve mail templates.
* @api {post} /system/get-mail-templates Get mail templates
* @apiVersion 4.0.0
*
* @apiName Get mail templates
*
* @apiGroup system
* @apiGroup System
*
* @apiDescription This path retrieves the all mail templates.
* @apiDescription This path retrieves the all the mail templates.
*
* @apiPermission Staff level 3
* @apiPermission staff3
*
* @apiUse NO_PERMISSION
*

View File

@ -1,17 +1,18 @@
<?php
/**
* @api {post} /system/get-settings Retrieve settings.
* @api {post} /system/get-settings Get settings
* @apiVersion 4.0.0
*
* @apiName Get settings
*
* @apiGroup system
* @apiGroup System
*
* @apiDescription This path retrieves one or more settings.
* @apiDescription This path retrieves all the settings.
*
* @apiPermission any
*
* @apiParam {Boolean} allSettings A bool that means if you want a regular settings list or a complety settings list.
* @apiParam {Boolean} allSettings Indicates if you want the regular settings list or a complete settings list. Complete list only available for staff level3.
*
* @apiSuccess {Object} data Contains the information about the settings
*

View File

@ -2,15 +2,16 @@
use Respect\Validation\Validator as DataValidator;
/**
* @api {post} /system/get-stats Retrieve stats.
* @api {post} /system/get-stats Get stats
* @apiVersion 4.0.0
*
* @apiName Get stats
*
* @apiGroup system
* @apiGroup System
*
* @apiDescription This path retrieves stats.
* @apiDescription This path retrieves the last stats.
*
* @apiPermission Staff level 1
* @apiPermission staff1
*
* @apiParam {String} period Period of search.
* @apiParam {Number} staffId Id of the current staff.

View File

@ -3,13 +3,14 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true);
/**
* @api {post} /system/init-admin Create the main administrator account.
* @api {post} /system/init-admin Init admin
* @apiVersion 4.0.0
*
* @apiName Init admin
*
* @apiGroup system
* @apiGroup System
*
* @apiDescription This path create the main administrator account.
* @apiDescription This path creates the main administrator account. It can only be used once during installation
*
* @apiPermission any
*

View File

@ -2,6 +2,31 @@
//include '../../config.php';
use RedBeanPHP\Facade as RedBean;
/**
* @api {post} /system/init-database Init database
* @apiVersion 4.0.0
*
* @apiName Init database
*
* @apiGroup System
*
* @apiDescription This path sets the database settings. It can only be used once during installation.
*
* @apiPermission any
*
* @apiParam {String} dbHost Url of the database server.
* @apiParam {String} dbName Name of the database. If not given, the system will try to create one.
* @apiParam {String} dbUser User of the database server.
* @apiParam {String} dbPassword Password of the database server.
*
* @apiUse DATABASE_CONNECTION
* @apiUse DATABASE_CREATION
* @apiUse INVALID_FILE
*
* @apiSuccess {Object} data Empty object
*
*/
class InitDatabaseController extends Controller {
const PATH = '/init-database';
const METHOD = 'POST';

View File

@ -2,6 +2,30 @@
use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true);
/**
* @api {post} /system/init-settings Init settings
* @apiVersion 4.0.0
*
* @apiName Init settings
*
* @apiGroup System
*
* @apiDescription This path sets the initial settings. It can only be used once during installation.
*
* @apiPermission any
*
* @apiParam {String} language Indicates the default language of the system.
* @apiParam {String} user-system-enabled Indicates if the user system should be enabled.
* @apiParam {String} registration Indicates if the registration should be enabled.
*
* @apiUse INVALID_LANGUAGE
* @apiUse INIT_SETTINGS_DONE
*
* @apiSuccess {Object} data Empty object
*
*/
class InitSettingsController extends Controller {
const PATH = '/init-settings';
const METHOD = 'POST';
@ -47,7 +71,7 @@ class InitSettingsController extends Controller {
'allow-attachments' => 0,
'max-size' => 1024,
'title' => 'Support Center',
'url' => 'http://dev3.opensupports.com',
'url' => 'http://' . $_SERVER['HTTP_HOST'],
'registration' => !!Controller::request('registration'),
'user-system-enabled' => !!Controller::request('user-system-enabled'),
'last-stat-day' => date('YmdHi', strtotime(' -12 day ')),
@ -113,4 +137,4 @@ class InitSettingsController extends Controller {
$department->store();
}
}
}
}

View File

@ -1,6 +1,22 @@
<?php
use RedBeanPHP\Facade as RedBean;
/**
* @api {post} /system/installation-done Installation done
* @apiVersion 4.0.0
*
* @apiName Installation done
*
* @apiGroup System
*
* @apiDescription This path checks if the installation is already done.
*
* @apiPermission any
*
* @apiSuccess {Boolean} data Indicates if the installation is already done.
*
*/
class InstallationDoneController extends Controller {
const PATH = '/installation-done';
const METHOD = 'POST';

View File

@ -2,18 +2,19 @@
use Respect\Validation\Validator as DataValidator;
/**
* @api {post} /system/recover-mail-template Recover mail template.
* @api {post} /system/recover-mail-template Recover mail template
* @apiVersion 4.0.0
*
* @apiName Recover mail template
*
* @apiGroup system
* @apiGroup System
*
* @apiDescription This path recover olds mail templates.
* @apiDescription This path recovers an mail template to its original content.
*
* @apiPermission Staff level 3
* @apiPermission staff3
*
* @apiParam {String} templateType type of the template.
* @apiParam {String} language language of the template.
* @apiParam {String} templateType Type of the template.
* @apiParam {String} language Lenguage of the template.
*
* @apiUse NO_PERMISSION
* @apiUse INVALID_TEMPLATE

View File

@ -3,15 +3,16 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true);
/**
* @api {post} /ticket/add-custom-response Add new custom responses.
* @api {post} /ticket/add-custom-response Add custom responses
* @apiVersion 4.0.0
*
* @apiName Add a custom response
*
* @apiGroup Ticket
*
* @apiDescription This path allows create new custom responses for tickets.
* @apiDescription This path allows add new custom responses for tickets.
*
* @apiPermission Staff Level 2
* @apiPermission staff2
*
* @apiParam {String} name Name of the response.
* @apiParam {String} content Content of the response.

View File

@ -3,17 +3,18 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true);
/**
* @api {post} /ticket/change-department Change the department of a ticket.
* @api {post} /ticket/change-department Change department
* @apiVersion 4.0.0
*
* @apiName Change department
*
* @apiGroup Ticket
*
* @apiDescription This path change the department of a ticket.
* @apiDescription This path changes the department of a ticket.
*
* @apiPermission Staff Level 1
* @apiPermission staff1
*
* @apiParam {Number} ticketNumber The number of a ticket.
* @apiParam {Number} ticketNumber The number of the ticket.
* @apiParam {Number} departmentId The id of the new department of the ticket.
*
* @apiUse NO_PERMISSION

View File

@ -2,15 +2,16 @@
use Respect\Validation\Validator as DataValidator;
/**
* @api {post} /ticket/change-priority Change the priority of a ticket.
* @api {post} /ticket/change-priority Change priority
* @apiVersion 4.0.0
*
* @apiName Change priority
*
* @apiGroup Ticket
*
* @apiDescription This path change the priority of a ticket.
* @apiDescription This path changes the priority of a ticket.
*
* @apiPermission Staff Level 1
* @apiPermission staff1
*
* @apiParam {Number} ticketNumber The number of a ticket.
* @apiParam {String} priority The new priority of the ticket.

View File

@ -3,13 +3,14 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true);
/**
* @api {post} /ticket/check Check if a ticket was or not readed.
* @api {post} /ticket/check Check ticket
* @apiVersion 4.0.0
*
* @apiName Check
* @apiName Check ticket
*
* @apiGroup Ticket
*
* @apiDescription This path check if a ticket was or not readed.
* @apiDescription This path logs you in to see a ticket, but only when there is no users.
*
* @apiPermission any
*

View File

@ -3,13 +3,14 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true);
/**
* @api {post} /ticket/close Close a ticket.
* @api {post} /ticket/close Close ticket
* @apiVersion 4.0.0
*
* @apiName Close
*
* @apiGroup Ticket
*
* @apiDescription This path close a ticket.
* @apiDescription This path closes a ticket.
*
* @apiPermission user
*

View File

@ -3,19 +3,19 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true);
/**
* @api {post} /ticket/comment Comment a ticket.
*
* @apiName Comment
* @api {post} /ticket/comment Comment ticket
* @apiVersion 4.0.0
*
* @apiName Comment ticket
*
* @apiGroup Ticket
*
* @apiDescription This path comment a ticket.
* @apiDescription This path comments a ticket.
*
* @apiPermission user
*
* @apiParam {String} content Content of the comment.
* @apiParam {Number} ticketNumber The number of the ticket to comment.
* @apiParam {String} csrf_token Token of the session.
*
* @apiUse NO_PERMISSION
* @apiUse INVALID_CONTENT

View File

@ -3,13 +3,14 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true);
/**
* @api {post} /ticket/create Create a new ticket.
* @api {post} /ticket/create Create ticket
* @apiVersion 4.0.0
*
* @apiName Create
* @apiName Create ticket
*
* @apiGroup Ticket
*
* @apiDescription This path create a new ticket.
* @apiDescription This path creates a new ticket.
*
* @apiPermission user
*
@ -26,6 +27,7 @@ DataValidator::with('CustomValidations', true);
* @apiUse INVALID_DEPARTMENT
* @apiUse INVALID_LANGUAGE
* @apiUse INVALID_CAPTCHA
* @apiUse INVALID_EMAIL
*
* @apiSuccess {Object} data Information of the new ticket
* @apiSuccess {Number} data.ticketNumber Number of the new ticket
@ -73,6 +75,10 @@ class CreateController extends Controller {
'validation' => DataValidator::captcha(),
'error' => ERRORS::INVALID_CAPTCHA
];
$validations['requestData']['email'] = [
'validation' => DataValidator::email(),
'error' => ERRORS::INVALID_EMAIL
];
}
return $validations;

View File

@ -3,20 +3,20 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true);
/**
* @api {post} /ticket/delete-custom-response Delete a custom response.
* @api {post} /ticket/delete-custom-response Delete custom response
* @apiVersion 4.0.0
*
* @apiName Delete custom response
*
* @apiGroup Ticket
*
* @apiDescription This path delete a custom response.
* @apiDescription This path deletes a custom response.
*
* @apiPermission user
*
* @apiParam {Number} id Id of the custom response to delete.
*
* @apiUse NO_PERMISSION
* @apiUse NO_PERMISSION
*
* @apiSuccess {Object} data Empty object
*

View File

@ -3,20 +3,21 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true);
/**
* @api {post} /ticket/edit-custom-response Edit a custom response.
* @api {post} /ticket/edit-custom-response Edit custom response
* @apiVersion 4.0.0
*
* @apiName Edit custom response
*
* @apiGroup Ticket
*
* @apiDescription This path edit a custom response.
* @apiDescription This path edits a custom response.
*
* @apiPermission Staff level 2
* @apiPermission staff2
*
* @apiParam {Number} id Id of the custom response to edit.
* @apiParam {String} content The new content of the custom response.
* @apiParam {String} language The new language of the custom response.
* @apiParam {String} name The new name of the custom response.
* @apiParam {String} content The new content of the custom response. It won't be changed if not defined.
* @apiParam {String} language The new language of the custom response. It won't be changed if not defined,
* @apiParam {String} name The new name of the custom response. It won't be changed if not defined.
*
* @apiUse NO_PERMISSION
* @apiUse INVALID_NAME

View File

@ -3,15 +3,16 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true);
/**
* @api {post} /ticket/get-custom-responses Retrieve customs responses.
* @api {post} /ticket/get-custom-responses Get custom responses
* @apiVersion 4.0.0
*
* @apiName Get custom responses
*
* @apiGroup Ticket
*
* @apiDescription This path give back custom responses.
* @apiDescription This path returns all the custom responses.
*
* @apiPermission Staff level 1
* @apiPermission staff1
*
* @apiUse NO_PERMISSION
*

View File

@ -2,18 +2,18 @@
use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true);
/**
* @api {post} /ticket/get Retrieve Ticket information.
* @api {post} /ticket/get Get ticket
* @apiVersion 4.0.0
*
* @apiName GetTicket
* @apiName Get ticket
*
* @apiGroup Ticket
*
* @apiDescription This path retrieves information about a ticket.
*
* @apiPermission any
* @apiPermission user
*
* @apiParam {Number} ticketNumber The number of the ticket.
* @apiParam {String} csrf_token Token of the current session.
*
* @apiUse INVALID_TICKET
* @apiUse NO_PERMISSION

View File

@ -2,13 +2,14 @@
use Respect\Validation\Validator as DataValidator;
/**
* @api {post} /ticket/re-open Re open a closed ticket.
* @api {post} /ticket/re-open Reopen ticket
* @apiVersion 4.0.0
*
* @apiName Re open
* @apiName Reopen ticket
*
* @apiGroup Ticket
*
* @apiDescription This path re open a closed ticket.
* @apiDescription This path reopens a closed ticket.
*
* @apiPermission user
*

View File

@ -2,17 +2,18 @@
use Respect\Validation\Validator as DataValidator;
/**
* @api {post} /ticket/seen See if a ticket was or not seen.
* @api {post} /ticket/seen See ticket
* @apiVersion 4.0.0
*
* @apiName Seen
* @apiName See ticket
*
* @apiGroup Ticket
*
* @apiDescription This path see if a ticket was or not seen.
* @apiDescription This path sets "unread" value to false, so it does not appear highlighted.
*
* @apiPermission user
*
* @apiParam {String} ticketNumber Number of the ticket.
* @apiParam {Number} ticketNumber Number of the ticket.
*
* @apiUse NO_PERMISSION
* @apiUse INVALID_TICKET

View File

@ -2,15 +2,16 @@
use Respect\Validation\Validator as DataValidator;
/**
* @api {post} /user/ban Bans email users.
* @api {post} /user/ban Ban email
* @apiVersion 4.0.0
*
* @apiName BanUser
* @apiName Ban email
*
* @apiGroup User
*
* @apiDescription This path takes an Email and bans it.
* @apiDescription This path takes an email and adds it to the ban list.
*
* @apiPermission Staff Level 1
* @apiPermission staff1
*
* @apiParam {String} email Email of user to ban.
*

View File

@ -1,18 +1,19 @@
<?php
/**
* @api {post} /user/check-session Check if session exist or not.
* @api {post} /user/check-session Check session
* @apiVersion 4.0.0
*
* @apiName Check session
*
* @apiGroup User
*
* @apiDescription This path retrieves a object that says if a session exist or not.
* @apiDescription This path checks if the session exists.
*
* @apiPermission Any
* @apiPermission any
*
* @apiSuccess {Object} data Information about the session
* @apiSuccess {Boolean} data.sessionActive Indicate if the session is activated
* @apiSuccess {Object} data Information about the session.
* @apiSuccess {Boolean} data.sessionActive Indicates if the session is active.
*
*/

View File

@ -3,15 +3,16 @@ use Respect\Validation\Validator as DataValidator;
use RedBeanPHP\Facade as RedBean;
/**
* @api {post} /user/delete Delete a user.
* @api {post} /user/delete Delete user
* @apiVersion 4.0.0
*
* @apiName Delete
* @apiName Delete user
*
* @apiGroup User
*
* @apiDescription This path receive a user id and delete its user.
* @apiDescription This path receives an user id and deletes the user.
*
* @apiPermission Staff level 1
* @apiPermission staff1
*
* @apiParam {Number} userId The id of the user to delete.
*

View File

@ -2,15 +2,16 @@
use Respect\Validation\Validator as DataValidator;
/**
* @api {post} /user/edit-email Edit email of an user.
* @api {post} /user/edit-email Edit email
* @apiVersion 4.0.0
*
* @apiName Edit-email
* @apiName Edit email
*
* @apiGroup User
*
* @apiDescription This path change the email of a user.
* @apiDescription This path changes the email of an user.
*
* @apiPermission User
* @apiPermission user
*
* @apiParam {String} newEmail The new email that the user wants to change.
*

View File

@ -2,15 +2,16 @@
use Respect\Validation\Validator as DataValidator;
/**
* @api {post} /user/edit-password Edit password of an user.
* @api {post} /user/edit-password Edit password
* @apiVersion 4.0.0
*
* @apiName Edit-password
* @apiName Edit password
*
* @apiGroup User
*
* @apiDescription This path edit the password of a user.
* @apiDescription This path edits the password of an user.
*
* @apiPermission User
* @apiPermission user
*
* @apiParam {String} newPassword The new password that the user wants to change.
* @apiParam {String} oldPassword The actual password of the user.

View File

@ -3,15 +3,16 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true);
/**
* @api {post} /user/get-user Retrieve the information of an specific user.
* @api {post} /user/get-user Get user information
* @apiVersion 4.0.0
*
* @apiName Get-user
* @apiName Get user information
*
* @apiGroup User
*
* @apiDescription This path retrieves information about an specific user.
* @apiDescription This path retrieves information about a specific user.
*
* @apiPermission Staff level 1
* @apiPermission staff1
*
* @apiParam {String} userId The id of the user to find information of.
*
@ -19,7 +20,7 @@ DataValidator::with('CustomValidations', true);
* @apiUse INVALID_USER
* @apiUse USER_SYSTEM_DISABLED
*
* @apiSuccess {Object} data Information about a user
* @apiSuccess {Object} data Information about an user
* @apiSuccess {String} data.name Name of the user
* @apiSuccess {String} data.email Email of the user
* @apiSuccess {Number} data.signupDate Date of signup of the user

View File

@ -2,20 +2,21 @@
use Respect\Validation\Validator as DataValidator;
/**
* @api {post} /user/get-users Retrieve the information of a list of users.
* @api {post} /user/get-users Get users list
* @apiVersion 4.0.0
*
* @apiName Get-users
* @apiName Get users list
*
* @apiGroup User
*
* @apiDescription This path retrieves information about a list of users.
* @apiDescription This path retrieves the list of users by page.
*
* @apiPermission Staff level 1
* @apiPermission staff1
*
* @apiParam {Number} page Number of pages of users.
* @apiParam {String} orderBy Parameter to order the users by tickets or id.
* @apiParam {Boolean} desc Parameter to order the user ascending or descending way.
* @apiParam {String} search Key to find some specific users.
* @apiParam {Boolean} desc Parameter to order the users in an ascending or descending way.
* @apiParam {String} search Text query to find users.
*
* @apiUse NO_PERMISSION
* @apiUse INVALID_PAGE

View File

@ -3,24 +3,25 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true);
/**
* @api {post} /user/get Retrieve the information of yourself.
* @api {post} /user/get Get my information
* @apiVersion 4.0.0
*
* @apiName Get
* @apiName Get my Information
*
* @apiGroup User
*
* @apiDescription This path retrieve the information of a user.
* @apiDescription This path retrieves information about the logged user.
*
* @apiPermission User
* @apiPermission user
*
* @apiUse NO_PERMISSION
* @apiUse INVALID_CREDENTIALS
*
* @apiSuccess {Object} data Information about a user
* @apiSuccess {Object} data Information about an user
* @apiSuccess {String} data.name Name of the user
* @apiSuccess {String} data.email Email of the user
* @apiSuccess {Boolean} data.verified Indicates if the user is verified
* @apiSuccess {Object} data Information about a user
* @apiSuccess {Object} data Information about an user
* @apiSuccess {[Ticket](#api-Data_Structures-ObjectTicket)[]} data.tickets Array of tickets of the user
*
*/

View File

@ -2,15 +2,16 @@
use Respect\Validation\Validator as DataValidator;
/**
* @api {post} /user/list-ban Retrieve the list of banned users.
* @api {post} /user/list-ban Get ban list
* @apiVersion 4.0.0
*
* @apiName List-ban
* @apiName Get ban list
*
* @apiGroup User
*
* @apiDescription This path retrieves the list of banned users.
* @apiDescription This path retrieves the list of banned emails.
*
* @apiPermission Staff level 1
* @apiPermission staff1
*
* @apiUse NO_PERMISSION
*

View File

@ -1,34 +1,35 @@
<?php
/**
* @api {post} /user/login Login a user.
* @api {post} /user/login Login
* @apiVersion 4.0.0
*
* @apiName Login
*
* @apiGroup User
*
* @apiDescription This path login a user.
* @apiDescription This path logs in an user.
*
* @apiPermission Any
* @apiPermission any
*
* @apiParam {Boolean} staff A bool that say if it want to login a staff or a normal user.
* @apiParam {String} email The email of the user to login.
* @apiParam {String} password The password of the user to login.
* @apiParam {Boolean} remember A bool that say if the session wants to be remembered.
* @apiParam {Boolean} staff Indicates if it wants to login a staff or a regular user.
* @apiParam {String} email The email of the user.
* @apiParam {String} password The password of the user.
* @apiParam {Boolean} remember Indicates if the session wants to be remembered.
* @apiParam {Number} userId The id of the user to login.
* @apiParam {String} rememberToken Token to login automatically.
* @apiParam {String} rememberToken Token to login automatically. It replaces the password.
*
* @apiUse USER_SYSTEM_DISABLED
* @apiUse SESSION_EXISTS
* @apiUse UNVERIFIED_USER
* @apiUse INVALID_CREDENTIALS
*
* @apiSuccess {Object} data Information about the session
* @apiSuccess {Number} data.userId Id of the user
* @apiSuccess {String} data.userEmail Email of the user
* @apiSuccess {Boolean} data.staff Indicates if the user is staff or not
* @apiSuccess {String} data.token Token of the session, used to verify the session when making other requests
* @apiSuccess {String} data.rememberToken Token of the remember session for automatic login
* @apiSuccess {Object} data Information about the session.
* @apiSuccess {Number} data.userId Id of the user.
* @apiSuccess {String} data.userEmail Email of the user.
* @apiSuccess {Boolean} data.staff Indicates if the user is a staff.
* @apiSuccess {String} data.token Token of the session, used to verify the session when making other requests.
* @apiSuccess {String} data.rememberToken Token of the remember session for automatic login .
*
*/

View File

@ -1,14 +1,15 @@
<?php
/**
* @api {post} /user/logout Log out the current user.
* @api {post} /user/logout Log out
* @apiVersion 4.0.0
*
* @apiName Log out
*
* @apiGroup User
*
* @apiDescription This path log out the current user.
* @apiDescription This path logs out the current user.
*
* @apiPermission Any
* @apiPermission any
*
* @apiSuccess {Object} data Empty object
*

View File

@ -3,19 +3,20 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true);
/**
* @api {post} /user/recover-password Change the password of the user using a token sended from the email.
* @api {post} /user/recover-password Recover password
* @apiVersion 4.0.0
*
* @apiName Recover password
*
* @apiGroup User
*
* @apiDescription This path change the password of the user usign a token sended from the email.
* @apiDescription This path changes the password of the user using a token sent by the email.
*
* @apiPermission Any
* @apiPermission any
*
* @apiParam {String} email The email of the user who forgot the password.
* @apiParam {String} password The new password of the user.
* @apiParam {String} token The token that was sended to the email of the user.
* @apiParam {String} token The token sent by email to the user.
*
* @apiUse INVALID_EMAIL
* @apiUse INVALID_PASSWORD

View File

@ -3,17 +3,18 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true);
/**
* @api {post} /user/send-recover-password Send a token to the email of the user to change his password
* @api {post} /user/send-recover-password Send password recovery
* @apiVersion 4.0.0
*
* @apiName Send recover password
* @apiName Send password recovery
*
* @apiGroup User
*
* @apiDescription This path send a token to the email of the user to change his password.
* @apiDescription This path sends a token to the email of the user to change his password.
*
* @apiPermission Any
* @apiPermission any
*
* @apiParam {String} email The email of the user who forgot the password.
* @apiParam {String} email The email of the user who forgot the password.
*
* @apiUse INVALID_EMAIL
* @apiUse USER_SYSTEM_DISABLED

View File

@ -4,20 +4,21 @@ use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true);
/**
* @api {post} /user/signup Sign up a new user.
* @api {post} /user/signup Sign up
* @apiVersion 4.0.0
*
* @apiName Sign up
*
* @apiGroup User
*
* @apiDescription This path sign up a user on the system.
* @apiDescription This path signs up an user on the system.
*
* @apiPermission Any
* @apiPermission any
*
* @apiParam {String} name The name of the new user.
* @apiParam {String} email The email of the new user.
* @apiParam {String} password The password of the new user.
* @apiParam {String} apyKey Key to sign up a user if the user system is disabled.
* @apiParam {String} name The name of the new user.
* @apiParam {String} email The email of the new user.
* @apiParam {String} password The password of the new user.
* @apiParam {String} apiKey APIKey to sign up an user if the user system is disabled.
*
* @apiUse INVALID_NAME
* @apiUse INVALID_EMAIL

View File

@ -2,17 +2,18 @@
use Respect\Validation\Validator as DataValidator;
/**
* @api {post} /user/un-ban Take a user out of banned list.
* @api {post} /user/un-ban Un ban
* @apiVersion 4.0.0
*
* @apiName Un ban
*
* @apiGroup User
*
* @apiDescription This path take a user out of banned list.
* @apiDescription This path takes an email out of banned list.
*
* @apiPermission Staff level 1
* @apiPermission staff1
*
* @apiParam {String} email The email of the user who was banned.
* @apiParam {String} email The email of the user who was banned.
*
* @apiUse NO_PERMISSION
* @apiUse INVALID_EMAIL

View File

@ -2,18 +2,19 @@
use Respect\Validation\Validator as DataValidator;
/**
* @api {post} /user/verify Verify the email of a new user.
* @api {post} /user/verify Verify email
* @apiVersion 4.0.0
*
* @apiName Verify
* @apiName Verify email
*
* @apiGroup User
*
* @apiDescription This path verify the email of a new user.
* @apiDescription This path verifies the email of a new user.
*
* @apiPermission any
*
* @apiParam {String} email The email of the user.
* @apiParam {String} token The key of validation the user.
* @apiParam {String} token The validation token sent by email to the user.
*
* @apiUse INVALID_EMAIL
* @apiUse USER_SYSTEM_DISABLED

View File

@ -1,6 +1,7 @@
<?php
/**
* @api {OBJECT} APIKey APIKey
* @apiVersion 4.0.0
* @apiGroup Data Structures
* @apiParam {String} name Name of the APIKey.
* @apiParam {String} token Token of the APIKey.

View File

@ -1,6 +1,7 @@
<?php
/**
* @api {OBJECT} Article Article
* @apiVersion 4.0.0
* @apiGroup Data Structures
* @apiParam {Number} id Id of the article.
* @apiParam {String} title Title of the article.

View File

@ -1,8 +1,9 @@
<?php
/**
* @api {OBJECT} Article Article
* @api {OBJECT} Ban Ban
* @apiVersion 4.0.0
* @apiGroup Data Structures
* @apiParam {Email} email Email of the user banned.
* @apiParam {Email} email The email address that is banned.
*/
class Ban extends DataStore {

View File

@ -1,6 +1,7 @@
<?php
/**
* @api {OBJECT} CustomResponse CustomResponse
* @apiVersion 4.0.0
* @apiGroup Data Structures
* @apiParam {Number} id Id of the custom response.
* @apiParam {String} content Content of the custom response.

View File

@ -3,10 +3,11 @@ use RedBeanPHP\Facade as RedBean;
/**
* @api {OBJECT} Department Department
* @apiVersion 4.0.0
* @apiGroup Data Structures
* @apiParam {Number} id Id of the custom response.
* @apiParam {String} name Name of the custom response.
* @apiParam {[Staff](#api-Data_Structures-ObjectStaff)[]} owners Owners of the department.
* @apiParam {Number} id Id of the department.
* @apiParam {String} name Name of the department.
* @apiParam {[Staff](#api-Data_Structures-ObjectStaff)[]} owners List of owners of the department.
*/
class Department extends DataStore {

View File

@ -2,14 +2,15 @@
use RedBeanPHP\Facade as RedBean;
/**
* @api {OBJECT} Log Log
* @apiVersion 4.0.0
* @apiGroup Data Structures
* @apiParam {String} type The type of the log.
* @apiParam {String} to Destinatary of the log.
* @apiParam {String} to Object where the action was performed.
* @apiParam {Object} author Author of the log.
* @apiParam {String} author.name Name of the author.
* @apiParam {Number} author.id Id of the author.
* @apiParam {Boolean} author.staff Kind of author.
* @apiParam {String} date Date of creation of the log.
* @apiParam {Boolean} author.staff Indicates if the author is a staff.
* @apiParam {String} date Date of the log creation.
*/
class Log extends DataStore {

View File

@ -3,6 +3,7 @@ use RedBeanPHP\Facade as RedBean;
/**
* @api {OBJECT} MailTemplate MailTemplate
* @apiVersion 4.0.0
* @apiGroup Data Structures
* @apiParam {String} type The type of the mail template.
* @apiParam {String} subject The subject of the mail template.

View File

@ -1,15 +1,15 @@
<?php
/**
* @api {OBJECT} Staff Staff
* @apiVersion 4.0.0
* @apiGroup Data Structures
* @apiParam {Number} id The type of the mail template.
* @apiParam {String} name The subject of the mail template.
* @apiParam {String} email The language of the mail template.
* @apiParam {String} profilePic The body of the mail template.
* @apiParam {Number} level The language of the mail template.
* @apiParam {Object[]} departments The departments of the staff.
* @apiParam {[Ticket](#api-Data_Structures-ObjectTicket)[]} tickets The tickets of the staff.
* @apiParam {Number} lastLogin The last login of the staff.
* @apiParam {String} name Name of the staff member.
* @apiParam {String} email Email of the staff member.
* @apiParam {String} profilePic profilePic url of the staff member.
* @apiParam {Number} level Level of the staff member.
* @apiParam {Object[]} departments The departments the staff member has assigned.
* @apiParam {[Ticket](#api-Data_Structures-ObjectTicket)[]} tickets The tickets the staff member has assigned.
* @apiParam {Number} lastLogin The last login of the staff member.
*/
class Staff extends DataStore {

View File

@ -1,10 +1,11 @@
<?php
/**
* @api {OBJECT} Stat Stat
* @apiVersion 4.0.0
* @apiGroup Data Structures
* @apiParam {Number} date The date of the stat.
* @apiParam {String} type The type of the stat.
* @apiParam {Boolean} general The general of the stat.
* @apiParam {Number} date The date of the stat as a number in format YYYYMMDD.
* @apiParam {String} type The type of the stat. It can be CREATE_TICKET, CLOSE, SIGNUP, COMMENT, ASSIGN or UNASSIGN
* @apiParam {Boolean} general Indicates if the stat is from the general system or from a particular ticket.
* @apiParam {String} value The value of the stat.
*/

View File

@ -1,6 +1,7 @@
<?php
/**
* @api {OBJECT} Ticket Ticket
* @apiVersion 4.0.0
* @apiGroup Data Structures
* @apiParam {Number} ticketNumber The number of the ticket.
* @apiParam {String} title The title of the ticket.
@ -8,12 +9,12 @@
* @apiParam {Object} department The department of the ticket.
* @apiParam {Number} department.id The id of the department of the ticket.
* @apiParam {String} department.name The department's name of the ticket.
* @apiParam {String} file The file of the ticket.
* @apiParam {String} file The filename of the ticket if attached.
* @apiParam {String} language The language of the ticket.
* @apiParam {Boolean} unread The boolean to know if the user already readed or not.
* @apiParam {Boolean} unreadStaff The boolean to know if the staff already readed or not.
* @apiParam {Boolean} closed The boolean to know if the ticket is already closed or not.
* @apiParam {String} priority The priority of the ticket.
* @apiParam {Boolean} unread Indicates if the user has already read the last comment.
* @apiParam {Boolean} unreadStaff Indicates if the staff has already read the last comment.
* @apiParam {Boolean} closed Indicates if the ticket is closed.
* @apiParam {String} priority The priority of the ticket. It can be LOW, MEDIUM or HIGH.
* @apiParam {Object} author The author of the ticket.
* @apiParam {Number} author.id The id of the author of the ticket.
* @apiParam {String} author.name The author's name of the ticket.

View File

@ -1,15 +1,16 @@
<?php
/**
* @api {OBJECT} TicketEvent TicketEvent
* @apiVersion 4.0.0
* @apiGroup Data Structures
* @apiParam {String} type The type of the ticket event.
* @apiParam {String} type The type of the ticket event. It can be COMMENT, ASSIGN, UN_ASSIGN, CLOSE, RE_OPEN, DEPARTMENT_CHANGED or PRIORITY_CHANGED
* @apiParam {String} content The content of the ticket event.
* @apiParam {Object} author The author of the ticket event.
* @apiParam {Number} author.id The author's id of the ticket event.
* @apiParam {String} author.name The author's name of the ticket event.
* @apiParam {String} author.email The author's email of the ticket event.
* @apiParam {String} author.profilePic The author's profilePic of the ticket event.
* @apiParam {Boolean} author.staff The boolean to know if the author is staff or not.
* @apiParam {Boolean} author.staff Indicates if the author is a staff.
* @apiParam {String} date The date of the ticket event.
* @apiParam {String} file The file of the ticket event.
*/

View File

@ -1,6 +1,7 @@
<?php
/**
* @api {OBJECT} Topic Topic
* @apiVersion 4.0.0
* @apiGroup Data Structures
* @apiParam {Number} id Id of the topic.
* @apiParam {String} name Name of the topic.

View File

@ -3,11 +3,12 @@ use RedBeanPHP\Facade as RedBean;
/**
* @api {OBJECT} User User
* @apiVersion 4.0.0
* @apiGroup Data Structures
* @apiParam {String} email The email of the user.
* @apiParam {Number} id The id of the user.
* @apiParam {String} name The name of the user.
* @apiParam {Boolean} verified A boolean to know if the user is already verified or not.
* @apiParam {Boolean} verified Indicates if the user has verified the email.
*/
class User extends DataStore {

View File

@ -41,6 +41,29 @@ describe'system/disable-user-system' do
(result['message']).should.equal('USER_SYSTEM_DISABLED')
end
it 'should create a ticket without user' do
request('/user/logout')
result = request('/ticket/create', {
title: 'test ticket without user',
content: 'The north remembers',
departmentId: 1,
language: 'en',
})
(result['status']).should.equal('fail')
(result['message']).should.equal('INVALID_EMAIL')
result = request('/ticket/create', {
title: 'test ticket without user',
content: 'The north remembers',
departmentId: 1,
language: 'en',
email: 'emailtest@opensupports.com'
})
(result['status']).should.equal('success')
end
it 'should not disable the user system if it is already disabled 'do
request('/user/logout')
Scripts.login($staff[:email], $staff[:password], true)
@ -69,7 +92,7 @@ describe'system/disable-user-system' do
numberOftickets= $database.query("SELECT * FROM ticket WHERE author_email IS NULL AND author_name IS NULL AND author_id IS NOT NULL" )
(numberOftickets.num_rows).should.equal(36)
(numberOftickets.num_rows).should.equal(37)
end

View File

@ -13,16 +13,16 @@ describe'/system/get-stats' do
#day 1
for i in 0..5
$database.query("INSERT INTO log VALUES('', 'SIGNUP', NULL, " + yesterday3 + ", NULL, NULL);")
$database.query("INSERT INTO log VALUES('', 'SIGNUP', NULL, " + yesterday3 + ", NULL, NULL, NULL);")
end
for i in 0..0
$database.query("INSERT INTO log VALUES('', 'CREATE_TICKET', NULL, " + yesterday3 + ", NULL, NULL);")
$database.query("INSERT INTO log VALUES('', 'CREATE_TICKET', NULL, " + yesterday3 + ", NULL, NULL, NULL);")
end
for i in 0..1
$database.query("INSERT INTO log VALUES('', 'CLOSE', NULL, " + yesterday3 + ", NULL, NULL);")
$database.query("INSERT INTO log VALUES('', 'CLOSE', NULL, " + yesterday3 + ", NULL, NULL, NULL);")
end
for i in 0..2
$database.query("INSERT INTO log VALUES('', 'COMMENT', NULL, " + yesterday3 + ", NULL, NULL);")
$database.query("INSERT INTO log VALUES('', 'COMMENT', NULL, " + yesterday3 + ", NULL, NULL, NULL);")
end
for i in 0..8
$database.query("INSERT INTO ticketevent VALUES('', 'CLOSE', NULL, NULL, " + yesterday3 + ", NULL, NULL, 1);")
@ -33,16 +33,16 @@ describe'/system/get-stats' do
#day 2
for i in 0..7
$database.query("INSERT INTO log VALUES('', 'SIGNUP', NULL, " + yesterday2 + ", NULL, NULL);")
$database.query("INSERT INTO log VALUES('', 'SIGNUP', NULL, " + yesterday2 + ", NULL, NULL, NULL);")
end
for i in 0..2
$database.query("INSERT INTO log VALUES('', 'CREATE_TICKET', NULL, " + yesterday2 + ", NULL, NULL);")
$database.query("INSERT INTO log VALUES('', 'CREATE_TICKET', NULL, " + yesterday2 + ", NULL, NULL, NULL);")
end
for i in 0..9
$database.query("INSERT INTO log VALUES('', 'CLOSE', NULL, " + yesterday2 + ", NULL, NULL);")
$database.query("INSERT INTO log VALUES('', 'CLOSE', NULL, " + yesterday2 + ", NULL, NULL, NULL);")
end
for i in 0..2
$database.query("INSERT INTO log VALUES('', 'COMMENT', NULL, " + yesterday2 + ", NULL, NULL);")
$database.query("INSERT INTO log VALUES('', 'COMMENT', NULL, " + yesterday2 + ", NULL, NULL, NULL);")
end
for i in 0..10
$database.query("INSERT INTO ticketevent VALUES('', 'CLOSE', NULL, NULL, " + yesterday2 + ", NULL, NULL, 1);")
@ -53,16 +53,16 @@ describe'/system/get-stats' do
#day 3
for i in 0..0
$database.query("INSERT INTO log VALUES('', 'SIGNUP', NULL, " + yesterday + ", NULL, NULL);")
$database.query("INSERT INTO log VALUES('', 'SIGNUP', NULL, " + yesterday + ", NULL, NULL, NULL);")
end
for i in 0..1
$database.query("INSERT INTO log VALUES('', 'CREATE_TICKET', NULL, " + yesterday + ", NULL, NULL);")
$database.query("INSERT INTO log VALUES('', 'CREATE_TICKET', NULL, " + yesterday + ", NULL, NULL, NULL);")
end
for i in 0..4
$database.query("INSERT INTO log VALUES('', 'CLOSE', NULL, " + yesterday + ", NULL, NULL);")
$database.query("INSERT INTO log VALUES('', 'CLOSE', NULL, " + yesterday + ", NULL, NULL, NULL);")
end
for i in 0..7
$database.query("INSERT INTO log VALUES('', 'COMMENT', NULL, " + yesterday + ", NULL, NULL);")
$database.query("INSERT INTO log VALUES('', 'COMMENT', NULL, " + yesterday + ", NULL, NULL, NULL);")
end
for i in 0..3
$database.query("INSERT INTO ticketevent VALUES('', 'CLOSE', NULL, NULL, " + yesterday + ", NULL, NULL, 1);")