Skip to content
Snippets Groups Projects
Commit b2bf5d36 authored by gsf20's avatar gsf20
Browse files

homologation script

parent d8dd704b
No related branches found
No related tags found
No related merge requests found
#!/usr/bin/env python3
import requests
import sys
api = "https://api.portalmec.c3sl.ufpr.br"
#api = "https://api.portalmechomologa.c3sl.ufpr.br"
user_id = None
total_submissions = 0
def homologate_learning_object(s, lo_id):
print("Homologando recurso id:", lo_id)
# Pega recurso para pegar o submission_id
r = s.get(f"{api}/v1/learning_objects/{lo_id}")
r.raise_for_status()
if 'Authorization' in r.headers:
s.headers.update({
'Authorization': r.headers['Authorization']
})
learning_object = r.json()
print("Nome do recurso: ", learning_object.name)
if learning_object['state'] == "draft":
print("learning object is a draft")
return
submission_id = learning_object['submission_id']
print("Submissão id: ", submission_id)
payload = {
'submission': {
'answers': [
{'question_id': 1, 'accepted': True},
{'question_id': 2, 'accepted': True},
{'question_id': 3, 'accepted': True},
{'question_id': 4, 'accepted': True}
],
'justification': "Homologado automaticamente"
}
}
# Faz post para homologar o recurso
r = s.post(f"{api}/v1/submissions/{submission_id}/answer", json=payload)
r.raise_for_status()
if 'Authorization' in r.headers:
s.headers.update({
'Authorization': r.headers['Authorization']
})
print(f"learning object '{learning_object['name']}'")
def get_submissions(s):
global user_id
global total_submissions
offset = 10
limit = 10
r = s.get(f"{api}/submissions/all_user_submissions/{user_id}?limit=10&offset=0")
r.raise_for_status()
if 'Authorization' in r.headers:
s.headers.update({
'Authorization': r.headers['Authorization']
})
total_submissoes = r.headers['x-total-count']
print(f"Serão {total_submissions} submissões analisadas")
submissions = [s['id'] for s in r.json()]
while len(submissions) > 0:
for s in submission:
yield s
r = s.get(f"{api}/submissions/all_user_submissions/{user_id}?limit={limit}&offset={offset}")
r.raise_for_status()
if 'Authorization' in r.headers:
s.headers.update({
'Authorization': r.headers['Authorization']
})
submissions = [s['id'] for s in r.json()]
def authenticate(s, email, password):
# Faz a autenticacao
r = requests.post(f"{api}/v1/auth/sign_in",
data={ 'email': email, 'password': password })
# Checa se deu erro na autenticacao
r.raise_for_status()
# Pega user id da resposta
user_id = r.json()['data']['id']
print("Autenticado com sucesso, usuário id:", user_id)
# Coloca Authorization header
s.headers.update({'Authorization': r.headers['Authorization']})
email = sys.argv[1]
password = sys.argv[2]
s = requests.Session()
authenticate(s, email, password)
for submission in get_submissions(s):
homologate_learning_object(submission)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment