adhesion: correction API

This commit is contained in:
Adrien Bourmault 2023-11-03 17:20:05 +01:00
parent 6a63cc8070
commit 47e7347bfc
Signed by: neox
GPG Key ID: 2974E1D5F25DFCC8
1 changed files with 41 additions and 40 deletions

View File

@ -16,7 +16,9 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
import os, requests, json, datetime, shutil, quopri, subprocess
import os, requests, json, datetime, shutil, quopri, subprocess, base64, os
import time, random, string, dateutil.parser, re, pygitea
from typing import List
from requests.auth import HTTPBasicAuth
from requests.auth import HTTPDigestAuth
@ -30,6 +32,7 @@ WELCOME_MAIL_HEADERS="mail_bienvenue_header.txt"
SUMMARY_MAIL="mail_resume.txt"
SENDMAIL_LOCATION = "/usr/sbin/sendmail" # sendmail location
BUF=[]
GITEA_URL = "forge.a-lec.org"
# gestion_read("SELECT * FROM services_users su \
# INNER JOIN membres m ON m.id = su.id_user \
@ -64,17 +67,16 @@ def gestion_read(req):
data = req)
return response.json()
def git_mail_ticket_create(req):
response = requests.post('https://git.a-lec.org/api/v4/projects/46/issues',
headers={'PRIVATE-TOKEN' : git_get_secret()},
data = req)
return response.json()
def git_xmpp_ticket_create(req):
response = requests.post('https://git.a-lec.org/api/v4/projects/44/issues',
headers={'PRIVATE-TOKEN' : git_get_secret()},
data = req)
return response.json()
def forgejo_post_issue(owner, repo, title, body, labels):
import_response: requests.Response = gitea_api.post("/repos/" + owner + "/" + repo + "/issues", json={
"body": issue.description,
"labels": labels,
"title": issue.title,
})
if not(import_response.ok):
print("Erreur à l'envoi du ticket {} à {}".format(title, repo))
raise(Exception)
return import_response.ok
def gestion_adduser(req):
response = requests.put('https://gestion.a-lec.org/api/user/import',
@ -257,41 +259,39 @@ def validate_registrations_worker():
BUF.append("=> MEMBRE VALIDE PAR SECRETARIAT <=")
# Launch git tickets
request = { 'title' : "Création d'un compte courriel membre n°{}.".format(numero),
'labels' : "Nouveau membre",
'confidential' : "yes",
'description' : "Bonjour,\n Une demande de création de compte de" \
+ "courriel ou une redirection a été émise.\n\n" \
+ "Compte de courriel actuel : {} \n".format(
email) \
+ "Compte de courriel désiré : {} \n".format(
member['email']) \
+ "Redirection ('on' si oui, vide si non) : {} \n".format(
is_redir)
}
if not "id" in str(git_mail_ticket_create(request)):
title = "Création d'un compte courriel membre n°{}.".format(numero)
body = "Bonjour,\n Une demande de création de compte de" \
+ "courriel ou une redirection a été émise.\n\n" \
+ "Compte de courriel actuel : {} \n".format(
email) \
+ "Compte de courriel désiré : {} \n".format(
member['email']) \
+ "Redirection ('on' si oui, vide si non) : {} \n".format(
is_redir)
labels = [970]
ticket_response = forgejo_post_issue("cominfra", "mail", title, body, labels)
if not "id" in str(ticket_response):
BUF.append("Validation échouée : ticket git MAIL en erreur : {}".format(
git_mail_ticket_create(request)
ticket_response
))
continue
else:
BUF.append("Ticket courriel ouvert.")
if is_xmpp == "on":
request = { 'title' : "Création d'un compte XMPP membre n°{}".format(numero),
'labels' : "Nouveau membre",
'confidential' : "yes",
'description' : "Bonjour,\n Une demande de création de compte" \
+ " XMPP a été émise.\n\n" \
+ "Compte de courriel actuel : {} \n".format(
email) \
+ "Compte XMPP désiré : {} \n".format(
member['email'])
}
if not "id" in str(git_xmpp_ticket_create(request)):
BUF.append("Validation échouée : ticket git MAIL en erreur : {}".format(
git_xmpp_ticket_create(request)
))
title = "Création d'un compte XMPP membre n°{}".format(numero)
body = "Bonjour,\n Une demande de création de compte XMPP " \
+ "a été émise.\n\n" \
+ "Compte de courriel actuel : {} \n".format(
email) \
+ "Compte de XMPP désiré : {} \n".format(
member['email'])
labels = [970]
ticket_response = forgejo_post_issue("cominfra", "mail", title, body, labels)
if not "id" in str(ticket_response):
BUF.append("Validation échouée : ticket git XMPP en erreur : {}".format(
ticket_response
))
continue
else:
BUF.append("Ticket XMPP ouvert.")
@ -315,6 +315,7 @@ def validate_registrations_worker():
pass
os.rename(registration, registration.replace("attente", "valide"))
FORGE = pygitea.API(GITEA_URL, token=gestion_get_secret())
def main():
setup_workdir()
new_registrations_worker()