{"version":3,"mappings":"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","names":["MoodleService","constructor","http","createUser","usuario","inscricao","console","log","senha","this","get","API_CONFIG","id","candidato","nome","sobrenome","email","endereco","cidade","updateUser","idUsuarioMoodle","idInscricao","emailCandidato","getUser","getUserFromId","getUserFromEmail","getCourse","login","getLoginURL","enrolStudent","userId","courseId","i0","factory","ctx_r3","routes","path","component","moodleService","inscricaoService","functionsService","dateFunctionsService","Date","ngOnInit","ionViewWillEnter","presentLoading","dataInicial","setMonth","dataFinal","setFullYear","filtrar","subscribe","next","resp","inscricoes","loadData","error","dismissLoading","usuariosMoodle","forEach","respMoodle","users","length","push","nomeCandidato","idMoodle","usernameMoodle","username","respMoodleFromId","emailMoodle","respMoodleFromEmail","errorFromEmail","errorFromId","errorMoodle","updateMoodle","usuarioMoodle","getUsernameFromArray","i","UpdateMoodlePage","selectors","UpdateMoodlePageRoutingModule","RouterModule","UpdateMoodlePageModule","CommonModule","FormsModule","IonicModule"],"sources":["./src/app/services/moodle/moodle.service.ts","./src/app/pages/modulo-gc/vestibular/update-moodle/update-moodle.page.html","./src/app/pages/modulo-gc/vestibular/update-moodle/update-moodle-routing.module.ts","./src/app/pages/modulo-gc/vestibular/update-moodle/update-moodle.page.ts","./src/app/pages/modulo-gc/vestibular/update-moodle/update-moodle.module.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { API_CONFIG } from 'src/app/config/api.config';\nimport { UsuarioDTO } from 'src/app/models/controle-acesso/usuarioDTO';\nimport { InscricaoDTO } from 'src/app/models/vestibular/inscricaoDTO';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MoodleService {\n\n constructor( private http: HttpClient ) { }\n\n\n createUser(usuario: UsuarioDTO, inscricao: InscricaoDTO) : Observable {\n\n console.log(usuario.senha)\n const params = '&wstoken=' + API_CONFIG.tokenMoodle + \n '&moodlewsrestformat=json' +\n '&users[0][createpassword]=0' +\n '&users[0][username]=' + inscricao.id +//a cada inscrição o candidato tem um login novo para poder fazer uma prova zerada\n '&users[0][auth]=manual' +\n '&users[0][password]=' + usuario.senha + '@Moodle' + //append a palavra @Moodle ao final\n '&users[0][firstname]=' + usuario.candidato.nome +\n '&users[0][lastname]=' + usuario.candidato.sobrenome +\n '&users[0][email]=' + usuario.candidato.email +\n '&users[0][idnumber]=' + usuario.candidato.id +\n '&users[0][maildisplay]=1' +\n '&users[0][city]=' + usuario.candidato.endereco.cidade +\n '&users[0][mailformat]=1';\n\n return this.http.get( API_CONFIG.apiMoodle+'?wsfunction=core_user_create_users' + params);\n\n }\n\n\n updateUser(idUsuarioMoodle: number, idInscricao: number, emailCandidato: string) : Observable {\n\n console.log('update,',idUsuarioMoodle,idInscricao,emailCandidato)\n const params = '&wstoken=' + API_CONFIG.tokenMoodle + \n '&moodlewsrestformat=json' +\n '&users[0][id]=' + idUsuarioMoodle + //passa o id do usuário\n '&users[0][username]=' + idInscricao + //e o novo username\n '&users[0][email]=' + emailCandidato; //e o novo email sem o id da inscrição\n\n return this.http.get( API_CONFIG.apiMoodle+'?wsfunction=core_user_update_users' + params);\n\n }\n\n\n getUser(idInscricao: number, emailCandidato: string) : Observable {\n\n const params = '&wstoken=' + API_CONFIG.tokenMoodle +\n '&moodlewsrestformat=json' + \n '&criteria[0][key]=username' +\n '&criteria[0][value]=' + idInscricao + '_' + emailCandidato; //o username do candidato é o número de sua inscrição concatenado ao seu email\n\n return this.http.get( API_CONFIG.apiMoodle+'?wsfunction=core_user_get_users' + params);\n\n }\n\n\n getUserFromId(idInscricao: number) : Observable {\n\n const params = '&wstoken=' + API_CONFIG.tokenMoodle +\n '&moodlewsrestformat=json' + \n '&criteria[0][key]=username' +\n '&criteria[0][value]=' + idInscricao; //o username do candidato pode ser o número de sua inscrição\n\n return this.http.get( API_CONFIG.apiMoodle+'?wsfunction=core_user_get_users' + params);\n\n }\n\n\n getUserFromEmail(emailCandidato: string) : Observable {\n\n const params = '&wstoken=' + API_CONFIG.tokenMoodle +\n '&moodlewsrestformat=json' + \n '&criteria[0][key]=username' +\n '&criteria[0][value]=' + emailCandidato; //o username do candidato pode ser eu email\n\n return this.http.get( API_CONFIG.apiMoodle+'?wsfunction=core_user_get_users' + params);\n\n }\n\n\n getCourse(login: string) : Observable {\n\n const params = '&wstoken=' + API_CONFIG.tokenMoodle +\n '&moodlewsrestformat=json' + \n '&criteria[0][key]=username' +\n '&criteria[0][value]=' + login;\n\n return this.http.get( API_CONFIG.apiMoodle+'?wsfunction=core_course_get_courses' + params);\n\n }\n\n\n getLoginURL(idInscricao: number) : Observable {\n /**\n * o login via url é uma funcionalidade do plugin User key authentication\n * \n * esse plugin é configurado no Moodle para gerar URL's dinâmicas para autenticar\n * os usuários a partir de login\n * \n * https://moodle.org/plugins/auth_userkey\n * */\n let params = '&wstoken=' + API_CONFIG.tokenMoodle +\n '&moodlewsrestformat=json' + \n '&user[username]=' + idInscricao;\n\n \n\n return this.http.get( API_CONFIG.apiMoodle+'?wsfunction=auth_userkey_request_login_url' + params);\n\n\n }\n\n \n enrolStudent(userId: number, courseId: number) : Observable {\n\n const params = '&wstoken=' + API_CONFIG.tokenMoodle +\n '&moodlewsrestformat=json' + \n '&enrolments[0][roleid]=5' +\n '&enrolments[0][courseid]=' + courseId+\n '&enrolments[0][userid]=' + userId;\n\n return this.http.get( API_CONFIG.apiMoodle+'?wsfunction=enrol_manual_enrol_users' + params);\n\n\n }\n\n}\n","\n \n update-moodle\n \n\n\n\n\n \n \n \n Inscrição\n \n \n Nome\n \n \n e-mail\n \n \n ID Moodle\n \n \n Username Moodle\n \n \n Email Moodle\n \n \n \n \n {{ususarioMoodle.idInscricao}}\n \n\n \n {{ususarioMoodle.nomeCandidato}}\n \n\n \n {{ususarioMoodle.emailCandidato}}\n \n\n \n {{ususarioMoodle.idMoodle}}\n \n\n \n {{ususarioMoodle.usernameMoodle}}\n \n\n \n {{ususarioMoodle.emailMoodle}}\n \n \n \n \n
\n 0\">Update\n
\n \n
\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nimport { UpdateMoodlePage } from './update-moodle.page';\n\nconst routes: Routes = [\n {\n path: '',\n component: UpdateMoodlePage\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class UpdateMoodlePageRoutingModule {}\n","import { Component, OnInit } from '@angular/core';\nimport * as moment from 'moment';\nimport { InscricaoDTO } from 'src/app/models/vestibular/inscricaoDTO';\nimport { DateFunctionsService } from 'src/app/services/common/date-functions.service';\nimport { FunctionsService } from 'src/app/services/common/functions.service';\nimport { InscricaoService } from 'src/app/services/inscricao/inscricao.service';\nimport { MoodleService } from 'src/app/services/moodle/moodle.service';\n\n@Component({\n selector: 'app-update-moodle',\n templateUrl: './update-moodle.page.html',\n styleUrls: ['./update-moodle.page.scss'],\n})\nexport class UpdateMoodlePage implements OnInit {\n\n inscricoes: InscricaoDTO[] = [];\n\n dataInicial = new Date();\n dataFinal = new Date();\n\n usuariosMoodle: any[] = [];\n\n constructor( private moodleService: MoodleService \n , private inscricaoService: InscricaoService\n , private functionsService: FunctionsService\n , private dateFunctionsService: DateFunctionsService ) { }\n\n ngOnInit() {\n }\n\n \n\n ionViewWillEnter(){\n \n this.functionsService.presentLoading();\n \n this.dataInicial.setMonth(0);\n this.dataFinal.setFullYear(2024);\n\n this.inscricaoService.filtrar( ''\n , 0\n , 0\n , true //vestibular online\n , false\n , false\n , false\n , false\n , false\n , false\n , false\n , []\n , []\n , this.dataInicial\n , this.dataFinal\n , null\n , null\n , false\n , 0\n , 1000\n , 'ASC' ).subscribe({\n next:(resp)=>{\n\n this.inscricoes = resp;\n\n this.loadData();\n\n \n\n },\n error:(error)=>{\n console.log(error);\n this.functionsService.dismissLoading();\n } \n\n });\n }\n\n loadData(){\n \n this.usuariosMoodle = [];\n this.inscricoes.forEach(inscricao => {\n //const username = await this.getUsernameFromMoodle(inscricao.id, inscricao.candidato.email);\n \n this.moodleService.getUser(inscricao.id, inscricao.candidato.email).subscribe({\n next:(respMoodle)=>{\n \n console.log('respMoodle',respMoodle, inscricao.id, inscricao.candidato.email)\n \n if(respMoodle.users.length>0){//encontrou pelo idInscricao + email\n\n const obj = {\n \"idInscricao\": inscricao.id,\n \"nomeCandidato\": inscricao.candidato.nome,\n \"emailCandidato\": inscricao.candidato.email,\n \"idMoodle\": respMoodle.users[0].id,\n \"usernameMoodle\": respMoodle.users[0].username\n };\n\n this.usuariosMoodle.push(obj);\n\n if(inscricao.id==this.inscricoes[this.inscricoes.length-1].id){\n this.functionsService.dismissLoading();\n }\n \n }else{//tenta buscar pelo id da inscrição\n \n this.moodleService.getUserFromId(inscricao.id).subscribe({\n next:(respMoodleFromId)=>{\n\n if(respMoodleFromId.users.length>0){//encontrou pelo id da inscricao\n\n const obj = {\n \"idInscricao\": inscricao.id,\n \"nomeCandidato\": inscricao.candidato.nome,\n \"emailCandidato\": inscricao.candidato.email,\n \"idMoodle\": respMoodleFromId.users[0].id,\n \"usernameMoodle\": respMoodleFromId.users[0].username,\n \"emailMoodle\": respMoodleFromId.users[0].email\n };\n \n this.usuariosMoodle.push(obj);\n \n if(inscricao.id==this.inscricoes[this.inscricoes.length-1].id){\n this.functionsService.dismissLoading();\n }\n \n }else{//tenta buscar pelo email\n\n this.moodleService.getUserFromEmail(inscricao.candidato.email).subscribe({\n next:(respMoodleFromEmail)=>{\n\n if(respMoodleFromEmail.users.length>0){//encontrou pelo email\n\n const obj = {\n \"idInscricao\": inscricao.id,\n \"nomeCandidato\": inscricao.candidato.nome,\n \"emailCandidato\": inscricao.candidato.email,\n \"idMoodle\": respMoodleFromEmail.users[0].id,\n \"usernameMoodle\": respMoodleFromEmail.users[0].username,\n \"emailMoodle\": respMoodleFromEmail.users[0].email\n };\n \n this.usuariosMoodle.push(obj);\n \n if(inscricao.id==this.inscricoes[this.inscricoes.length-1].id){\n this.functionsService.dismissLoading();\n }\n \n }\n\n },\n error:(errorFromEmail)=>{\n console.log(errorFromEmail);\n this.functionsService.dismissLoading();\n }\n });\n\n }\n\n },\n error:(errorFromId)=>{\n console.log(errorFromId);\n this.functionsService.dismissLoading();\n }\n });\n\n }\n\n \n },\n error:(errorMoodle)=>{\n console.log(errorMoodle);\n this.functionsService.dismissLoading();\n }\n });\n\n \n \n });\n\n\n }\n\n\n updateMoodle(){\n \n this.functionsService.presentLoading();\n\n this.usuariosMoodle.forEach(usuarioMoodle=>{\n\n if(usuarioMoodle.idMoodle==130555911){\n\n this.moodleService.updateUser( usuarioMoodle.idMoodle\n , usuarioMoodle.idInscricao\n , usuarioMoodle.emailCandidato ).subscribe({\n next:(resp)=>{\n\n console.log('Resp Update', resp);\n if(usuarioMoodle.idMoodle==this.usuariosMoodle[this.usuariosMoodle.length-1].idMoodle){\n //recarrega a tela\n this.loadData();\n return;\n }\n },\n error:(error)=>{\n console.log(error);\n }\n });\n\n }\n\n });\n }\n \n\n getUsernameFromArray(idInscricao: number, emailCandidato: string){\n\n for(var i=0; i