class App42::User::UserService

Creates User for the App. App42 Cloud API's provides a complete User Management for any Mobile or Web App. It supports User registration, retrieval, state management e.g. lock, delete and Authentication.

Along with User Management the platform provides API's for persistent SessionManagement

@see SessionService @see User @see App42Response

Public Class Methods

new(api_key, secret_key, base_url) click to toggle source

this is a constructor that takes

@param apiKey @param secretKey @param baseURL

# File lib/user/UserService.rb, line 36
def initialize(api_key, secret_key, base_url)
  puts "UserService->initialize"
  @api_key = api_key
  @secret_key = secret_key
  @base_url = base_url
  @resource = "user"
  @version = "1.0"
end

Public Instance Methods

assign_roles(user_name, role_list) click to toggle source

Add Role for the App

@param uName

- UserName which should be unique for the App

@param roleList

- list of roles to be added to User

@return The created User Object.

@raise App42Exception

# File lib/user/UserService.rb, line 1115
def assign_roles(user_name, role_list)
  puts "assignRoles Called "
  puts "Base url #{@base_url}"
  response, usr = nil
  usr, util = User.new, Util.new
  util.throwExceptionIfNullOrBlank(user_name, "UserName")
  util.throwExceptionIfNullOrBlank(role_list, "RoleList")
  raise App42Exception.new("RoleList cannot be empty.Please assign at least one role") if role_list.size == 0
  begin
    connection = App42::Connection::RESTConnection.new(@base_url)
    body = {'app42' => {"user"=> {
      "userName" => user_name, "roles" => {
      "role" => role_list
      }}}}.to_json
    puts "Body #{body}"
    query_params = {}
    params = {
      'apiKey'=> @api_key,
      'version' => @version,
      'timeStamp' => util.get_timestamp_utc,
    }
    query_params = params.clone
    params.store("body", body)
    puts query_params
    signature = util.sign(@secret_key, params)
    resource_url = "#{@version}/#{@resource}/assignrole"
    response = connection.post(signature, resource_url, query_params, body)
    user = UserResponseBuilder.new()
    usr = user.buildResponse(response)
  rescue  App42Exception =>e
    raise e
  rescue  Exception => e
    raise App42Exception.new(e)
  end
  return usr
end
authenticate(uName, pwd) click to toggle source

Authenticate user based on userName and password

@param user_name

- UserName which should be unique for the App

@param pwd

- Password for the User

@return Whether the user is authenticated or not.

@raise App42Exception if authentication fails or username/password is blank or null

# File lib/user/UserService.rb, line 350
def authenticate(uName, pwd)
  puts "authenticateUser Called "
  puts "Base url #{@base_url}"
  response,usr = nil
  usr, util = User.new, Util.new
  util.throwExceptionIfNullOrBlank(uName, "UserName")
  util.throwExceptionIfNullOrBlank(pwd, "Password")
  begin
    connection = App42::Connection::RESTConnection.new(@base_url)
    body = {'app42' => {"user"=> {
      "userName" => uName,
      "password" => pwd
      }}}.to_json
    puts "Body #{body}"
    query_params = {}
    params = {
      'apiKey'=> @api_key,
      'version' => @version,
      'timeStamp' => util.get_timestamp_utc,
    }
    query_params = params.clone
    params.store("body", body)
    signature = util.sign(@secret_key, params)
    resource_url = "#{@version}/#{@resource}/authenticate"
    response = connection.post(signature, resource_url, query_params, body)
    user = UserResponseBuilder.new
    usr = user.buildResponse(response)
  rescue  App42Exception =>e
    raise e
  rescue  Exception => e
    raise e
  end
  return usr
end
change_user_password(user_name, old_password, new_password) click to toggle source

Change the password for user based on the userName.

@param uName

- UserName which should be unique for the App

@param oldPwd

- Old Password for the user for authentication

@param newPwd

- New Password for the user to change

@return App42Response Object if updated successfully

@raise App42Exception

# File lib/user/UserService.rb, line 665
def change_user_password(user_name, old_password, new_password)
  puts "changeUserPassword Called "
  puts "Base url #{@base_url}"
  response = nil
  responseObj = App42Response.new()
  util = Util.new
  util.throwExceptionIfNullOrBlank(user_name, "UserName")
  util.throwExceptionIfNullOrBlank(old_password, "Old Password")
  util.throwExceptionIfNullOrBlank(new_password, "New Password")
  responseObj = App42Response.new
  if(old_password == new_password)
    raise App42Exception.new("Old password and new password are same")
  end
  begin
    connection = App42::Connection::RESTConnection.new(@base_url)
    body = {'app42' => {"user"=> {
      "userName" => user_name,
      "oldPassword" => old_password,
      "newPassword" => new_password
      }}}.to_json
    query_params = {}
    params = {
      'apiKey'=> @api_key,
      'version' => @version,
      'timeStamp' => util.get_timestamp_utc,
    }
    query_params = params.clone
    params.store("body", body)
    signature = util.sign(@secret_key, params)
    resource_url = "#{@version}/#{@resource}/changeUserPassword"
    response = connection.put(signature, resource_url, query_params, body)
    responseObj.strResponse=(response)
    responseObj.isResponseSuccess=(true)
  rescue  App42Exception =>e
    raise e
  rescue  Exception => e
    raise App42Exception.new(e)
  end
  return responseObj
end
create_or_update_profile(user) click to toggle source

Creates or Updates User Profile. First time the Profile for the user is created and in future calls user profile will be updated. This will always update the profile with new value passed in profile object. Call to this method should have all the values you want to retain in user profile object, otherwise old values of profile will get updated with null.

Method only updates the profile of user, passing email/password in user object does not have any significance for this method call.

@param user

- User for which profile has to be updated, this should

contain the userName and profile object in it.

@return User Object with updated Profile information

@raise App42Exception

@see Profile

# File lib/user/UserService.rb, line 279
def create_or_update_profile(user)
  puts "Base url #{@base_url}"
  response = nil
  userResponse = nil
  userResponse = User.new
  util = Util.new
  util.throwExceptionIfNullOrBlank(user, "User")
  util.throwExceptionIfNullOrBlank(user.userName, "UserName")
  util.throwExceptionIfNullOrBlank(user.profile, "Profile Data")
  begin
    connection = App42::Connection::RESTConnection.new(@base_url)
    profile = user.profile()
    profileObj = {}
    profileObj.store("firstName", profile.firstName())
    profileObj.store("lastName", profile.lastName())
    profileObj.store("sex", profile.sex())
    profileObj.store("mobile", profile.mobile())
    profileObj.store("line1", profile.line1())
    profileObj.store("line2", profile.line2())
    profileObj.store("city", profile.city())
    profileObj.store("state", profile.state())
    profileObj.store("country", profile.country())
    profileObj.store("pincode", profile.pincode())
    profileObj.store("homeLandLine", profile.homeLandLine())
    profileObj.store("officeLandLine", profile.officeLandLine())
    if profile.dateOfBirth != nil
      profileObj.store("dateOfBirth", util.get_timestamp_utc_from_date(profile.dateOfBirth))
    end
    body = {
      'app42'=>{"user"=>{
      "userName"=>user.userName,
      "profileData"=>profileObj
      }
      }
    }.to_json
    puts "Body #{body}"
    query_params = {}
    params = {
      'apiKey'=> @api_key,
      'version' => @version,
      'timeStamp' => util.get_timestamp_utc,
    }
    query_params = params.clone
    params.store("body", body)
    signature = util.sign(@secret_key, params)
    resource_url = "#{@version}/#{@resource}/profile"
    response = connection.put(signature, resource_url, query_params, body)
    user = UserResponseBuilder.new
    userResponse = user.buildResponse(response)
  rescue  App42Exception =>e
    raise e
  rescue  Exception => e
    raise e
  end
  return userResponse
end
create_user(user_name, pwd, email_address) click to toggle source

Variable should be snake case

# File lib/user/UserService.rb, line 61
def create_user(user_name, pwd, email_address)
  puts "Create User Called "
  puts "Base url #{@base_url}"
  response, usr = nil
  usr, util = User.new, Util.new
  util.throwExceptionIfNullOrBlank(user_name, "UserName")
  util.throwExceptionIfNullOrBlank(pwd, "Password")
  util.throwExceptionIfEmailNotValid(email_address, "EmailAddress")
  util.throwExceptionIfNullOrBlank(email_address, "EmailAddress")
  begin
    connection = App42::Connection::RESTConnection.new @base_url
    body = {'app42' => {"user"=> {
      "userName" => user_name,
      "password" => pwd,
      "email" => email_address
      }}}.to_json
    puts "Body #{body}"
    query_params = {}
    params = {
      'apiKey'=> @api_key,
      'version' => @version,
      'timeStamp' => util.get_timestamp_utc,
    }
    query_params = params.clone
    params.store("body", body)
    puts params
    puts query_params
    signature = util.sign(@secret_key, params)
    resource_url = "#{@version}/#{@resource}"
    response = connection.post(signature, resource_url, query_params, body)
    user = UserResponseBuilder.new
    usr = user.buildResponse(response)
  rescue  App42Exception =>e
    raise e
  rescue  Exception => e
    raise App42Exception.new(e)
  end
  return usr
end
create_user_with_role(user_name, pwd, email_address, role_list) click to toggle source

Create User for the App

@param uName

- UserName which should be unique for the App

@param pwd

- Password for the User

@param emailAddress

- Email address of the user

@param roleList

- list of roles to be assigned to User

@return The created User Object.

@raise App42Exception

# File lib/user/UserService.rb, line 799
def create_user_with_role(user_name, pwd, email_address, role_list)
  puts "Create User Called "
  puts "Base url #{@base_url}"
  response, usr = nil
  usr, util = User.new, Util.new
  util.throwExceptionIfNullOrBlank(user_name, "UserName")
  util.throwExceptionIfNullOrBlank(pwd, "Password")
  util.throwExceptionIfEmailNotValid(email_address, "EmailAddress")
  util.throwExceptionIfNullOrBlank(email_address, "EmailAddress")
  util.throwExceptionIfNullOrBlank(role_list, "RoleList")
  raise App42Exception.new("RoleList cannot be empty.Please assign at least one role") if role_list.size == 0
  begin
    connection = App42::Connection::RESTConnection.new(@base_url)
    role_array = []
    for role in role_list do
      role_array.push(role)
    end
    body = {'app42' => {"user"=> {
      "email" => email_address,
      "password" => pwd,
      "userName" => user_name, "roles" => {
      "role" => role_array
      }}}}.to_json
    puts "Body #{body}"
    query_params = {}
    params = {
      'apiKey'=> @api_key,
      'version' => @version,
      'timeStamp' => util.get_timestamp_utc,
    }
    query_params = params.clone
    params.store("body", body)
    puts query_params
    signature = util.sign(@secret_key, params)
    resource_url = "#{@version}/#{@resource}/role"
    response = connection.post(signature, resource_url, query_params, body)
    user = UserResponseBuilder.new()
    usr = user.buildResponse(response)
  rescue  App42Exception =>e
    raise e
  rescue  Exception => e
    raise App42Exception.new(e)
  end
  return usr
end
delete_user(user_name) click to toggle source

Deletes a particular user based on userName.

@param userName

- UserName which should be unique for the App

@return App42Response Object if user deleted successfully

@raise App42Exception

# File lib/user/UserService.rb, line 229
def delete_user(user_name)
  puts "Delete User Called "
  puts "Base url #{@base_url}"
  response ,response_obj, util = nil, App42Response.new, Util.new
  util.throwExceptionIfNullOrBlank(user_name, "UserName")
  begin
    connection = App42::Connection::RESTConnection.new(@base_url)
    query_params = {}
    params = {
      'apiKey'=> @api_key,
      'version' => @version,
      'timeStamp' => util.get_timestamp_utc,
    }
    query_params = params.clone
    params.store("userName", user_name)
    signature = util.sign(@secret_key, params)
    resource_url = "#{@version}/#{@resource}/#{user_name}"
    response = connection.delete(signature, resource_url, query_params)
    response_obj.strResponse=(response)
    response_obj.isResponseSuccess=(true)
  rescue  App42Exception =>e
    raise e
  rescue  Exception => e
    raise App42Exception.new(e)
  end
  return response_obj
end
fill_params_with_profile_data(profileData) click to toggle source

Builds a Parameter string from the profileData.

@param profileData

- User.Profile object that contains User's Profile information

@return String Object which contains the parameter string.

@raise App42Exception

# File lib/user/UserService.rb, line 1163
def fill_params_with_profile_data(profileData)
  profileDataCond = ""
  if profileData.city != nil && !profileData.city != ""
    profileDataCond += "city:"+ profileData.city()+"!"
  end
  if profileData.country != nil && !profileData.country != ""
    profileDataCond += "country:"+ profileData.country()+"!"
  end
  if profileData.dateOfBirth != nil && !profileData.dateOfBirth != ""
    profileDataCond += "date_of_birth:"+ profileData.dateOfBirth()+"!"
  end
  if profileData.firstName != nil && !profileData.firstName != ""
    profileDataCond += "first_name:"+ profileData.firstName()+"!"
  end
  if profileData.lastName != nil && !profileData.lastName != ""
    profileDataCond += "last_name:"+ profileData.lastName()+"!"
  end
  if profileData.homeLandLine != nil && !profileData.homeLandLine != ""
    profileDataCond += "home_land_line:"+ profileData.homeLandLine()+"!"
  end
  if profileData.line1 != nil && !profileData.line1 != ""
    profileDataCond += "line1:"+ profileData.line1()+"!"
  end
  if profileData.line2() != nil && !profileData.line2 != ""
    profileDataCond += "line2:"+ profileData.line2()+"!"
  end
  if profileData.mobile != nil && !profileData.mobile != ""
    profileDataCond += "mobile:"+ profileData.mobile()+"!"
  end
  if profileData.officeLandLine() != nil && !profileData.officeLandLine.equals("")
    profileDataCond += "office_land_line:"+ profileData.officeLandLine()+"!"
  end
  if profileData.pincode != nil && !profileData.pincode != ""
    profileDataCond += "pincode:"+ profileData.pincode()+"!"
  end
  if profileData.sex != nil && !profileData.sex != ""
    profileDataCond += "sex:"+ profileData.sex()+"!"
  end
  if profileData.state != nil && !profileData.state != ""
    profileDataCond += "state:"+ profileData.state()+"!"
  end
  return profileDataCond
end
get_all_users() click to toggle source

Gets All users details

@return Returns the list that contains all User Object

@raise App42Exception

# File lib/user/UserService.rb, line 149
def get_all_users()
  puts "Get All Users Called"
  puts "Base url #{@base_url}"
  response, userList = nil
  user_list, util = [], Util.new

  begin
    connection = App42::Connection::RESTConnection.new(@base_url)
    query_params = {}
    params = {
      'apiKey'=> @api_key,
      'version' => @version,
      'timeStamp' => util.get_timestamp_utc,
    }
    query_params = params.clone
    signature = util.sign(@secret_key, params)
    resource_url = "#{@version}/#{@resource}"
    response = connection.get(signature, resource_url, query_params)
    user = UserResponseBuilder.new
    user_list = user.buildArrayResponse(response)
  rescue  App42Exception =>e
    raise e
  rescue  Exception => e
    raise App42Exception.new(e)
  end
  return user_list
end
get_all_users_by_paging(max, offset) click to toggle source

Gets All users By Paging

@param max

- Maximum number of records to be fetched

@param offset

- From where the records are to be fetched

@return Returns User Information

@raise App42Exception

# File lib/user/UserService.rb, line 574
def get_all_users_by_paging(max, offset)
  puts "getAllUsersByPaging Called "
  puts "Base url #{@base_url}"
  response, usr = nil
  user_list, util = User.new, Util.new
  util.validateMax(max)
  util.throwExceptionIfNullOrBlank(max, "Max")
  util.throwExceptionIfNullOrBlank(offset, "Offset")
  begin
    connection = App42::Connection::RESTConnection.new(@base_url)
    query_params = {}
    params = {
      'apiKey'=> @api_key,
      'version' => @version,
      'timeStamp' => util.get_timestamp_utc,
    }
    query_params = params.clone
    params.store("max", "" + (max.to_i).to_s)
    params.store("offset", "" + (offset.to_i).to_s)
    signature = util.sign(@secret_key, params)
    resource_url = "#{@version}/#{@resource}/paging/#{(max.to_i).to_s}/#{(offset.to_i).to_s}"
    response = connection.get(signature, resource_url, query_params)
    user = UserResponseBuilder.new
    user_list = user.buildArrayResponse(response)
  rescue  App42Exception =>e
    raise e
  rescue  Exception => e
    raise App42Exception.new(e)
  end
  return user_list
end
get_all_users_count() click to toggle source

Gets the count of all the users

@return Returns the count of all User exists

@raise App42Exception

# File lib/user/UserService.rb, line 714
def get_all_users_count
  puts "getAllUsersCount Called "
  puts "Base url #{@base_url}"
  response = nil
  responseObj, util = App42Response.new, Util.new
  begin
    connection = App42::Connection::RESTConnection.new(@base_url)
    query_params = {}
    params = {
      'apiKey'=> @api_key,
      'version' => @version,
      'timeStamp' => util.get_timestamp_utc,
    }
    query_params = params.clone
    signature = util.sign(@secret_key, params)
    resource_url = "#{@version}/#{@resource}/count/all"
    response = connection.get(signature, resource_url, query_params)
    responseObj.strResponse=(response)
    responseObj.isResponseSuccess=(true)
    responseObj = UserResponseBuilder.new()
    responseObj.getTotalRecords(response)
  rescue  App42Exception =>e
    raise e
  rescue  Exception => e
    raise App42Exception.new(e)
  end
  return responseObj
end
get_locked_users() click to toggle source

Gets All the locked users details

@return Returns the list that contains locked User Objects

@raise App42Exception

# File lib/user/UserService.rb, line 393
def get_locked_users()
  puts "Get Locked Users Called"
  puts "Base url #{@base_url}"
  response, user_list = nil
  user_list, util = [], Util.new
  begin
    connection = App42::Connection::RESTConnection.new(@base_url)
    query_params = {}
    params = {
      'apiKey'=> @api_key,
      'version' => @version,
      'timeStamp' => util.get_timestamp_utc,
    }
    query_params = params.clone
    signature = util.sign(@secret_key, params)
    resource_url = "#{@version}/#{@resource}/locked"
    response = connection.get(signature, resource_url, query_params)
    user = UserResponseBuilder.new
    user_list = user.buildArrayResponse(response)
  rescue  App42Exception =>e
    raise e
  rescue  Exception => e
    raise App42Exception.new(e)
  end
  return user_list
end
get_locked_users_by_paging(max, offset) click to toggle source

Gets All the locked users By paging details

@param max

- Maximum number of records to be fetched

@param offset

- From where the records are to be fetched

@return Returns User Information

@raise App42Exception

# File lib/user/UserService.rb, line 619
def get_locked_users_by_paging(max, offset)
  puts "get_locked_users_by_paging Called "
  puts "Base url #{@base_url}"
  response, user, user_list, util = nil,nil, User.new, Util.new
  util.validateMax(max)
  util.throwExceptionIfNullOrBlank(max, "Max")
  util.throwExceptionIfNullOrBlank(offset, "Offset")
  begin
    connection = App42::Connection::RESTConnection.new(@base_url)
    query_params = {}
    params = {
      'apiKey'=> @api_key,
      'version' => @version,
      'timeStamp' => util.get_timestamp_utc,
    }
    query_params = params.clone
    params.store("max", "" + (max.to_i).to_s)
    params.store("offset", "" + (offset.to_i).to_s)
    signature = util.sign(@secret_key, params)
    resource_url = "#{@version}/#{@resource}/locked/#{(max.to_i).to_s}/#{(offset.to_i).to_s}"
    response = connection.get(signature, resource_url, query_params)
    user = UserResponseBuilder.new
    user_list = user.buildArrayResponse(response)
  rescue  App42Exception =>e
    raise e
  rescue  Exception => e
    raise App42Exception.new(e)
  end
  return user_list
end
get_locked_users_count() click to toggle source

Gets the count of all the locked users

@return Returns the count of locked User exists

@raise App42Exception

# File lib/user/UserService.rb, line 751
def get_locked_users_count()
  puts "getLockedUsersCount Called "
  puts "Base url #{@base_url}"
  response = nil
  responseObj = App42Response.new()
  util = Util.new
  begin
    connection = App42::Connection::RESTConnection.new(@base_url)
    query_params = {}
    params = {
      'apiKey'=> @api_key,
      'version' => @version,
      'timeStamp' => util.get_timestamp_utc,
    }
    query_params = params.clone
    puts query_params
    signature = util.sign(@secret_key, params)
    resource_url = "#{@version}/#{@resource}/count/locked"
    response = connection.get(signature, resource_url, query_params)
    responseObj.strResponse=(response)
    responseObj.isResponseSuccess=(true)
    responseObj = UserResponseBuilder.new()
    responseObj.getTotalRecords(response)
  rescue  App42Exception =>e
    raise e
  rescue  Exception => e
    raise App42Exception.new(e)
  end
  return responseObj
end
get_roles_by_user(user_name) click to toggle source

Get Roles based on userName

@param userName

- UserName which should be unique for the App

@return Returns User Object

@raise App42Exception

# File lib/user/UserService.rb, line 856
def get_roles_by_user(user_name)
  puts "getRolesByUser Called "
  puts "Base url #{@base_url}"
  response, user = nil
  usr, util = User.new, Util.new
  util.throwExceptionIfNullOrBlank(user_name, "UserName")
  begin
    connection = App42::Connection::RESTConnection.new(@base_url)
    query_params = {}
    params = {
      'apiKey'=> @api_key,
      'version' => @version,
      'timeStamp' => util.get_timestamp_utc,
    }
    query_params = params.clone
    params.store("userName", user_name)
    puts query_params
    signature = util.sign(@secret_key, params)
    resource_url = "#{@version}/#{@resource}/#{user_name}/roles"
    response = connection.get(signature, resource_url, query_params)
    user = UserResponseBuilder.new()
    usr = user.buildResponse(response)
  rescue  App42Exception =>e
    raise e
  rescue  Exception => e
    raise App42Exception.new(e)
  end
  return usr
end
get_user(user_name) click to toggle source

Gets user details based on userName

@param userName

- UserName which should be unique for the App

@return Returns User Object

@raise App42Exception

# File lib/user/UserService.rb, line 112
def get_user(user_name)
  puts "Get User Called "
  puts "Base url #{@base_url}"
  response, usr = nil
  usr, util  = User.new, Util.new
  util.throwExceptionIfNullOrBlank(user_name, "UserName")
  begin
    connection = App42::Connection::RESTConnection.new(@base_url)
    query_params = {}
    params = {
      'apiKey'=> @api_key,
      'version' => @version,
      'timeStamp' => util.get_timestamp_utc,
    }
    query_params = params.clone
    params.store("userName", user_name)
    signature = util.sign(@secret_key, params)
    resource_url = "#{@version}/#{@resource}/#{user_name}"
    response = connection.get(signature, resource_url, query_params)
    user = UserResponseBuilder.new
    usr = user.buildResponse(response)
  rescue  App42Exception =>e
    raise e
  rescue  Exception => e
    raise App42Exception.new(e)
  end
  return usr
end
get_user_by_email_id(email_id) click to toggle source

Gets user details based on emailId

@param emailId

- EmailId of the user to be retrieved

@return Returns User Object

@raise App42Exception

# File lib/user/UserService.rb, line 188
def get_user_by_email_id(email_id)
  puts "Get All Users Called"
  puts "Base url #{@base_url}"
  response, usr = nil
  usr, util = User.new, Util.new
  util.throwExceptionIfEmailNotValid(email_id, "EmailId")
  util.throwExceptionIfNullOrBlank(email_id, "EmailId")
  begin
    connection = App42::Connection::RESTConnection.new(@base_url)
    query_params = {}
    params = {
      'apiKey'=> @api_key,
      'version' => @version,
      'timeStamp' => util.get_timestamp_utc,
    }
    query_params = params.clone
    params.store("emailId", email_id)
    signature = util.sign(@secret_key, params)
    resource_url = "#{@version}/#{@resource}/email/#{email_id}"
    response = connection.get(signature, resource_url, query_params)
    user = UserResponseBuilder.new
    usr = user.buildResponse(response)
  rescue  App42Exception =>e
    raise e
  rescue  Exception => e
    raise App42Exception.new(e)
  end
  return usr
end
get_users_by_profile_data(profileData) click to toggle source

Get Users based on Profile Data

@param profileData

- Profile Data key/value for which Users need to be retrieved

@return Returns Arraylist of User Object for that particular role

@raise App42Exception

# File lib/user/UserService.rb, line 1020
def get_users_by_profile_data(profileData)
  puts "get_users_by_profile_data Called "
  puts "Base url #{@base_url}"
  response = nil
  userList = nil
  userList = []
  util = Util.new
  parameters = ""
  parameters = fill_params_with_profile_data(profileData)
  begin
    connection = App42::Connection::RESTConnection.new(@base_url)
    query_params = {}
    params = {
      'apiKey'=> @api_key,
      'version' => @version,
      'timeStamp' => util.get_timestamp_utc,
    }
    query_params = params.clone
    puts query_params
    signature = util.sign(@secret_key, params)
    resource_url = "#{@version}/#{@resource}/profile/#{parameters}"
    response = connection.get(signature, resource_url, query_params)
    user = UserResponseBuilder.new()
    userList = user.buildArrayResponse(response)
  rescue  App42Exception =>e
    raise e
  rescue  Exception => e
    raise App42Exception.new(e)
  end
  return userList
end
get_users_by_role(role) click to toggle source

Get Users based on Role

@param role

- Role which should be unique for the App

@return Returns User Object

@raise App42Exception

# File lib/user/UserService.rb, line 897
def get_users_by_role(role)
  puts "get_users_by_role Called "
  puts "Base url #{@base_url}"
  response, usr = nil
  userList, util = [], Util.new
  util.throwExceptionIfNullOrBlank(role, "Role")
  begin
    connection = App42::Connection::RESTConnection.new(@base_url)
    query_params = {}
    params = {
      'apiKey'=> @api_key,
      'version' => @version,
      'timeStamp' => util.get_timestamp_utc,
    }
    query_params = params.clone
    params.store("role", role)
    puts query_params
    signature = util.sign(@secret_key, params)
    resource_url = "#{@version}/#{@resource}/role/#{role}"
    response = connection.get(signature, resource_url, query_params)
    user = UserResponseBuilder.new()
    userList = user.buildArrayResponse(response)
  rescue  App42Exception =>e
    raise e
  rescue  Exception => e
    raise App42Exception.new(e)
  end
  return userList
end
lock_user(user_name) click to toggle source

Locks the user based on the userName. Apps can use these feature to lock a user because of reasons specific to their usercase e.g. If payment not received and the App wants the user to be inactive

@param uName

- UserName which should be unique for the App

@return Returns the locked User Object

@raise App42Exception

# File lib/user/UserService.rb, line 483
def lock_user(user_name)
  puts "Lock User Called "
  puts "Base url #{@base_url}"
  response, usr = nil
  usr, util = User.new, Util.new
  util.throwExceptionIfNullOrBlank(user_name, "UserName")
  begin
    connection = App42::Connection::RESTConnection.new(@base_url)
    body = {'app42' => {"user"=> {
      "userName" => user_name
      }}}.to_json
    puts "Body #{body}"
    query_params = {}
    params = {
      'apiKey'=> @api_key,
      'version' => @version,
      'timeStamp' => util.get_timestamp_utc,
    }
    query_params = params.clone
    params.store("body", body)
    signature = util.sign(@secret_key, params)
    resource_url = "#{@version}/#{@resource}/lock"
    response = connection.put(signature, resource_url, query_params, body)
    user = UserResponseBuilder.new
    usr = user.buildResponse(response)
  rescue  App42Exception =>e
    raise e
  rescue  Exception => e
    raise App42Exception.new(e)
  end
  return usr
end
reset_user_password(user_name,password) click to toggle source

Updates the User based on userName. Note: Only email can be updated. Username cannot be updated.

@param uName

- UserName which should be unique for the App

@param emailAddress

- Email address of the user

@return updated User Object

@raise App42Exception

# File lib/user/UserService.rb, line 1066
def reset_user_password(user_name,password)
  puts "resetUserPassword Called "
  puts "Base url #{@base_url}"
  response = nil
  responseObj, util = App42Response.new, Util.new
  util.throwExceptionIfNullOrBlank(user_name, "UserName")
  util.throwExceptionIfNullOrBlank(password, "password")
  begin
    connection = App42::Connection::RESTConnection.new(@base_url)
    body = {'app42' => {"user"=> {
      "userName" => user_name,
      "password" => password
      }}}.to_json
    puts "Body #{body}"
    query_params = {}
    params = {
      'apiKey'=> @api_key,
      'version' => @version,
      'timeStamp' => util.get_timestamp_utc,
    }
    query_params = params.clone
    params.store("body", body)
    puts query_params
    signature = util.sign(@secret_key, params)
    resource_url = "#{@version}/#{@resource}/resetUserPassword"
    response = connection.put(signature, resource_url, query_params, body)
    responseObj.strResponse=(response)
    responseObj.isResponseSuccess=(true)
  rescue  App42Exception =>e
    raise e
  rescue  Exception => e
    raise App42Exception.new(e)
  end
  return responseObj
end
revoke_all_roles(user_name) click to toggle source

Revokes the specified role from the user.

@param userName

- UserName which should be unique for the App

@return App42Response Object if user deleted successfully

@raise App42Exception

# File lib/user/UserService.rb, line 980
def revoke_all_roles(user_name)
  puts "revoke_all_roles Called "
  puts "Base url #{@base_url}"
  response, response_obj, util = nil, App42Response.new, Util.new
  util.throwExceptionIfNullOrBlank(user_name, "UserName")
  begin
    connection = App42::Connection::RESTConnection.new(@base_url)
    query_params = {}
    params = {
      'apiKey'=> @api_key,
      'version' => @version,
      'timeStamp' => util.get_timestamp_utc,
    }
    query_params = params.clone
    params.store("userName", user_name)
    puts query_params
    signature = util.sign(@secret_key, params)
    resource_url = "#{@version}/#{@resource}/#{user_name}/revoke"
    response = connection.delete(signature, resource_url, query_params)
    response_obj.strResponse=(response)
    response_obj.isResponseSuccess=(true)
  rescue  App42Exception =>e
    raise e
  rescue  Exception => e
    raise App42Exception.new(e)
  end
  return response_obj
end
revoke_role(user_name, role) click to toggle source

Revokes the specified role from the user.

@param userName

- UserName which should be unique for the App

@return App42Response Object if user deleted successfully

@raise App42Exception

# File lib/user/UserService.rb, line 938
def revoke_role(user_name, role)
  puts "revoke_role Called "
  puts "Base url #{@base_url}"
  response, responseObj, util = nil, App42Response.new, Util.new
  util.throwExceptionIfNullOrBlank(user_name, "UserName")
  util.throwExceptionIfNullOrBlank(role, "Role")
  begin
    connection = App42::Connection::RESTConnection.new(@base_url)
    query_params = {}
    params = {
      'apiKey'=> @api_key,
      'version' => @version,
      'timeStamp' => util.get_timestamp_utc,
    }
    query_params = params.clone
    params.store("role", role)
    params.store("userName", user_name)
    puts query_params
    signature = util.sign(@secret_key, params)
    resource_url = "#{@version}/#{@resource}/#{user_name}/revoke/#{role}"
    response = connection.delete(signature, resource_url, query_params)
    responseObj.strResponse=(response)
    responseObj.isResponseSuccess=(true)
  rescue  App42Exception =>e
    raise e
  rescue  Exception => e
    raise App42Exception.new(e)
  end
  return responseObj
end
unlock_user(user_name) click to toggle source

Unlock the user based on the userName. Apps can use these feature to unlock a user because of reasons specific to their usercase e.g. If payment received and the App wants to the user to be active.

@param uName

- UserName which should be unique for the App

@return Returns the unlocked User Object

@raise App42Exception

# File lib/user/UserService.rb, line 528
def unlock_user(user_name)
  puts "unlockUser Called "
  puts "Base url #{@base_url}"
  response, usr = nil
  usr, util = User.new, Util.new
  util.throwExceptionIfNullOrBlank(user_name, "UserName")
  begin
    connection = App42::Connection::RESTConnection.new(@base_url)
    body = {'app42' => {"user"=> {
      "userName" => user_name
      }}}.to_json
    puts "Body #{body}"
    query_params = {}
    params = {
      'apiKey'=> @api_key,
      'version' => @version,
      'timeStamp' => util.get_timestamp_utc,
    }
    query_params = params.clone
    params.store("body", body)
    signature = util.sign(@secret_key, params)
    resource_url = "#{@version}/#{@resource}/unlock"
    response = connection.put(signature, resource_url, query_params, body)
    user = UserResponseBuilder.new
    usr = user.buildResponse(response)
  rescue  App42Exception =>e
    raise e
  rescue  Exception => e
    raise App42Exception.new(e)
  end
  return usr
end
update_email(user_name, email_id) click to toggle source

Updates the User based on userName. Note: Only email can be updated. Username cannot be updated.

@param uName

- UserName which should be unique for the App

@param emailAddress

- Email address of the user

@return updated User Object

@raise App42Exception

# File lib/user/UserService.rb, line 434
def update_email(user_name,  email_id)
  puts "Update User Called "
  puts "Base url #{@base_url}"
  response, usr = nil
  usr, util = User.new, Util.new
  util.throwExceptionIfNullOrBlank(user_name, "UserName")
  util.throwExceptionIfNullOrBlank(email_id, "EmailAddress")
  util.throwExceptionIfNullOrBlank(email_id, "Email Address")
  begin
    connection = App42::Connection::RESTConnection.new(@base_url)
    body = {'app42' => {"user"=> {
      "userName" => user_name,
      "email" => email_id
      }}}.to_json
    puts "Body #{body}"
    query_params = {}
    params = {
      'apiKey'=> @api_key,
      'version' => @version,
      'timeStamp' => util.get_timestamp_utc,
    }
    query_params = params.clone
    params.store("body", body)
    puts query_params
    signature = util.sign(@secret_key, params)
    resource_url = "#{@version}/#{@resource}"
    response = connection.put(signature, resource_url, query_params, body)
    user = UserResponseBuilder.new
    usr = user.buildResponse(response)
  rescue  App42Exception =>e
    raise e
  rescue  Exception => e
    raise App42Exception.new(e)
  end
  return usr
end