| 
									
										
										
										
											2022-03-20 19:50:08 +01:00
										 |  |  | 'use strict'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const { toPlainObject } = require('lodash/fp'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const { checkBadRequest } = require('../../utils'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | module.exports = ({ nexus, strapi }) => { | 
					
						
							|  |  |  |   const { nonNull } = nexus; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   return { | 
					
						
							|  |  |  |     type: 'UsersPermissionsLoginPayload', | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     args: { | 
					
						
							|  |  |  |       currentPassword: nonNull('String'), | 
					
						
							|  |  |  |       password: nonNull('String'), | 
					
						
							|  |  |  |       passwordConfirmation: nonNull('String'), | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     description: 'Change user password. Confirm with the current password.', | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     async resolve(parent, args, context) { | 
					
						
							|  |  |  |       const { koaContext } = context; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       koaContext.request.body = toPlainObject(args); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-08-08 23:33:39 +02:00
										 |  |  |       await strapi.plugin('users-permissions').controller('auth').changePassword(koaContext); | 
					
						
							| 
									
										
										
										
											2022-03-20 19:50:08 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |       const output = koaContext.body; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       checkBadRequest(output); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       return { | 
					
						
							|  |  |  |         user: output.user || output, | 
					
						
							|  |  |  |         jwt: output.jwt, | 
					
						
							|  |  |  |       }; | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | }; |