Password updating and validation
This API lets you create user account, update user password and validate user's credentials. User can use it's username and password to login to API in end user mode using varions client web and mobile apps, including:
- KIOSK web app
- Client Portal web app
- Perfect Gym Go mobile app
- Your custom app
- Sign up for end user account with email
- Sign up for end user account with Facebook
- Request password reset token
- Password reset
- Send email with link to page to reset password
- Validate user credentials
Sign up for end user account with email
POST Users/SignUp
Request creates an end user account and returns password reset token. To complete sign up process user has to update account password using password reset method. After completing sign up process user credentials can be used to access API in end user mode.
Parameters
Name | Type | Description |
---|---|---|
email |
string |
Required. User email. |
Response
Example request
In this example we sign up for an account for user identified with given email address.
curl -X POST -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json" http://yoursubdomain.perfectgym.com/Api/Users/SignUp?email=john.fibo@perfectgym.pl
Example response
Status: 200 OK
{
"elements": [
{
"resetPasswordToken": "9c10cdf6-565d-47cf-a7af-d27e6f989df8"
}
]
}
Sign up for end user account with Facebook
POST Users/SignUpWithFacebook
Request creates an end user account and returns User details. User is identified with Facebook email address. After completing sign up process Facebook token can be used to access API in end user mode.
Parameters
Name | Type | Description |
---|---|---|
facebookToken |
string |
Required. Facebook token. |
Response
Example request
In this example we sign up for an account for user identified with an email address based on Facebook token.
curl -X POST -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json" http://yoursubdomain.perfectgym.com/Api/Users/SignUp?facebookToken=FACEBOOK_TOKEN
Example response
Status: 200 OK
{
"elements": [
{
"id": 1,
"timestamp": 447183,
"personalId": "80010101234",
"number": "102000001",
"cardNumber": "",
"firstName": "Jan",
"lastName": "Nowak",
"email": "nowak@example.com",
"emailAddressIsConfirmed": false,
"photoUrl": "",
"coverPhotoUrl": "",
"birthDate": "1944-09-17T00:00:00",
"isForeigner": false,
"sex": "Male",
"phoneNumber": "0048123456789",
"idCardName": "Passport",
"idCardNumber": "ABC 123456",
"legalGuardian": "",
"newsletterAgreement": false,
"termsAndConditionsAgreement": false,
"address": {
"country": "Poland",
"city": "Warszawa",
"postalCode": "20-259",
"line1": "al. Jerozolimskie 114",
"line2": ""
},
"directDebit": {
"accountNumber": "",
"ownerName": "",
"street": "",
"cityAndPostalCode": "",
"documentUrl": ""
},
"homeClubId": 12,
"registeredAtClubId": "",
"isActive": true,
"isDeleted": false,
"contracts": [
{
"id": 10358,
"timestamp": 350287,
"signUpDate": "2014-03-28T00:00:00",
"startDate": "2014-04-01T00:00:00",
"cancelDate": "2015-03-31T23:59:59",
"endDate": "2015-03-31T23:59:59",
"isCurrent": false,
"membership": {
"id": 1,
"timestamp": 349423,
"name": "Open",
"isActive": true,
"isDeleted": false
},
"paymentPlan": {
"id": 2,
"timestamp": 252688,
"name": "Student weekly 45",
"isActive": true,
"isDeleted": false
},
"discounts": [
{
"id": 10,
"isActive": true,
"name": "50%",
"administartionFeeDiscountType": "ValueDiscount",
"joiningFeeDiscountType": "None",
"membershipFeeDiscountType": "PercentDiscount",
"administartionFeeDiscountValue": 0,
"joiningFeeDiscountValue": "",
"membershipFeeDiscountValue": 50
}
],
"isActive": true,
"isDeleted": false
}
]
}
]
}
Request password reset token
GET Users/ResetPassword
Request returns password reset token. Using password reset token user is able to update his account password. For details see password reset method.
Parameters
Name | Type | Description |
---|---|---|
email |
string |
Required. User email. |
Response
Example request
In this example user's password reset token.
curl -X GET -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json" http://yoursubdomain.perfectgym.com/Api/Users/ResetPassword?email=john.fibo@perfectgym.pl
Example response
Status: 200 OK
{
"elements": [
{
"resetPasswordToken": "9c10cdf6-565d-47cf-a7af-d27e6f989df8"
}
]
}
Password reset
POST Users/ResetPassword
Request updates user account password. Prior to updating user account password, password reset token must be aquired.
Body parameters
Name | Type | Description |
---|---|---|
resetPasswordToken |
string |
Required. Password reset token. |
password |
string |
Required. New user account password. |
Response
Example request
In this example we update password for account with a given password reset token associated.
curl -X POST -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json" -d '{ "resetPasswordToken": "9c10cdf6-565d-47cf-a7af-d27e6f989df8", "password": "new_password" }' http://yoursubdomain.perfectgym.com/Api/Users/ResetPassword
Example response
Status: 200 OK
{
"elements": [
{
"id": 236,
"timestamp": 448035,
"personalId": "80010101234",
"number": "2b7b02df-08ae-4720-a3ce-a594bfc46d47",
"cardNumber": "",
"firstName": "John",
"lastName": "Fibo",
"email": "john.fibo@perfectgym.pl",
"emailAddressIsConfirmed": false,
"phoneNumber": "0048123456789",
"idCardName": "Passport",
"idCardNumber": "ABC 123456",
"legalGuardian": "",
"photoUrl": "http://yoursubdomain.perfectgym.com/Api/Files/Photo?photoId=78",
"coverPhotoUrl": "",
"birthDate": "1978-06-01T00:00:00",
"isForeigner": false,
"sex": "Male",
"newsletterAgreement": false,
"termsAndConditionsAgreement": true,
"address": {
"country": "Poland",
"city": "Warszawa",
"postalCode": "02-962",
"line1": "ul. Przyczolkowa 334",
"line2": ""
},
"directDebit": {
"accountNumber": "61 1090 1014 0000 0712 1981 2874",
"ownerName": "John Fibo",
"street": "Przyczółkowa 334",
"cityAndPostalCode": "02-962 Warszawa",
"documentUrl": "http://yoursubdomain.perfectgym.com/Api/Files/Files?fileId=123"
},
"homeClubId": 12,
"registeredAtClubId": "",
"isActive": true,
"isDeleted": false,
"contracts": [
{
"id": 10358,
"timestamp": 350287,
"signUpDate": "2016-01-26T00:00:00",
"startDate": "2016-01-26T00:00:00",
"cancelDate": "",
"endDate": "",
"isCurrent": true,
"membership": {
"id": 1,
"timestamp": 349423,
"name": "Open",
"isActive": true,
"isDeleted": false
},
"paymentPlan": {
"id": 44,
"timestamp": 447623,
"name": "Open 24m",
"isActive": true,
"isAddOnPaymentPlan": false,
"isDeleted": false
},
"discounts": [
{
"id": 10,
"isActive": true,
"name": "50%",
"administartionFeeDiscountType": "ValueDiscount",
"joiningFeeDiscountType": "None",
"membershipFeeDiscountType": "PercentDiscount",
"administartionFeeDiscountValue": 0,
"joiningFeeDiscountValue": "",
"membershipFeeDiscountValue": 50
}
],
"documentUrl": "http://yoursubdomain.perfectgym.com/Api/Files/Files?fileId=120",
"isActive": true,
"isDeleted": false
}
]
}
]
}
Send email with link to page to reset password
GET Users/SendEmailToResetPassword
Sending en email message with link to page to reset password. Link include token to reset password, which can be pass to ResetPassword method.
Parameters
Name | Type | Description |
---|---|---|
email |
string |
Required. User email. |
Response
Returns Success when send an email message, otherwise, it return error code: "EmailTemplateNotDefined", "UnableSendEmail" or "InvalidToken".
Example request
In this example user's password reset token.
curl -X GET -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json" http://yoursubdomain.perfectgym.com/Api/Users/SendEmailToResetPassword?email=john.fibo@perfectgym.pl
Example response
Status: 200 OK
{
"elements": [
{
"ResultStatus": "Success"
}
]
}
Example error response
Template of email message is not defined.
Status: 400 Bad Request
{
"errors": [
{
"code": "EmailTemplateNotDefined",
"property": "",
"message": ""
}
]
}
Error during sending email message.
Status: 400 Bad Request
{
"errors": [
{
"code": "UnableSendEmail",
"property": "",
"message": ""
}
]
}
Error during creating reset password token token.
Status: 400 Bad Request
{
"errors": [
{
"code": "InvalidToken",
"property": "",
"message": ""
}
]
}
Validate user credentials
POST Users/ValidateCredentials
Request checks if user's name and password are valid.
Body parameters
Name | Type | Description |
---|---|---|
userName |
string |
User name. |
password |
string |
User password. |
Response
User details if operation is successful, or collection of errors with validate credentials error codes otherwise.
Example request
In this example we validate user credentials.
curl -X POST -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json" -d '{ "userName": "john.fibo@perfectgym.pl", "password": "password", }' http://yoursubdomain.perfectgym.com/Api/Users/ValidateCredentials
Example response
Status: 200 OK
{
"elements": [
{
"id": 236,
"timestamp": 448035,
"personalId": "80010101234",
"number": "2b7b02df-08ae-4720-a3ce-a594bfc46d47",
"cardNumber": "",
"firstName": "John",
"lastName": "Fibo",
"email": "john.fibo@perfectgym.pl",
"emailAddressIsConfirmed": false,
"phoneNumber": "0048123456789",
"idCardName": "Passport",
"idCardNumber": "ABC 123456",
"legalGuardian": "",
"photoUrl": "http://yoursubdomain.perfectgym.com/Api/Files/Photo?photoId=78",
"coverPhotoUrl": "",
"birthDate": "1978-06-01T00:00:00",
"isForeigner": false,
"sex": "Male",
"newsletterAgreement": false,
"termsAndConditionsAgreement": true,
"address": {
"country": "Poland",
"city": "Warszawa",
"postalCode": "02-962",
"line1": "ul. Przyczolkowa 334",
"line2": ""
},
"directDebit": {
"accountNumber": "61 1090 1014 0000 0712 1981 2874",
"ownerName": "John Fibo",
"street": "Przyczółkowa 334",
"cityAndPostalCode": "02-962 Warszawa",
"documentUrl": "http://yoursubdomain.perfectgym.com/Api/Files/Files?fileId=123"
},
"homeClubId": 12,
"registeredAtClubId": "",
"isActive": true,
"isDeleted": false,
"contracts": [
{
"id": 10358,
"timestamp": 350287,
"signUpDate": "2016-01-26T00:00:00",
"startDate": "2016-01-26T00:00:00",
"cancelDate": "",
"endDate": "",
"isCurrent": true,
"membership": {
"id": 1,
"timestamp": 349423,
"name": "Open",
"isActive": true,
"isDeleted": false
},
"paymentPlan": {
"id": 44,
"timestamp": 447623,
"name": "Open 24m",
"isActive": true,
"isAddOnPaymentPlan": false,
"isDeleted": false
},
"discounts": [
{
"id": 10,
"isActive": true,
"name": "50%",
"administartionFeeDiscountType": "ValueDiscount",
"joiningFeeDiscountType": "None",
"membershipFeeDiscountType": "PercentDiscount",
"administartionFeeDiscountValue": 0,
"joiningFeeDiscountValue": "",
"membershipFeeDiscountValue": 50
}
],
"documentUrl": "http://yoursubdomain.perfectgym.com/Api/Files/Files?fileId=120",
"isActive": true,
"isDeleted": false
}
]
}
]
}
Example error response
Invalid user credentials generates following response:
Status: 400 Bad Request
{
"errors": [
{
"code": "InvalidUserNameOrPassword",
"property": "",
"message": ""
}
]
}