module WorkOS::DirectorySync

The Directory Sync module provides convenience methods for working with the WorkOS Directory Sync platform. You'll need a valid API key and to have created a Directory Sync connection on your WorkOS dashboard.

@see docs.workos.com/directory-sync/overview

Public Class Methods

delete_directory(id) click to toggle source
# File lib/workos/directory_sync.rb, line 174
def delete_directory(id)
  request = delete_request(
    auth: true,
    path: "/directories/#{id}",
  )

  response = execute_request(request: request)

  response.is_a? Net::HTTPSuccess
end
get_group(id) click to toggle source
# File lib/workos/directory_sync.rb, line 140
def get_group(id)
  response = execute_request(
    request: get_request(
      path: "/directory_groups/#{id}",
      auth: true,
    ),
  )

  JSON.parse(response.body)
end
get_user(id) click to toggle source
# File lib/workos/directory_sync.rb, line 157
def get_user(id)
  response = execute_request(
    request: get_request(
      path: "/directory_users/#{id}",
      auth: true,
    ),
  )

  JSON.parse(response.body)
end
list_directories(options = {}) click to toggle source
# File lib/workos/directory_sync.rb, line 36
def list_directories(options = {})
  response = execute_request(
    request: get_request(
      path: '/directories',
      auth: true,
      params: options,
    ),
  )

  parsed_response = JSON.parse(response.body)
  directories = parsed_response['data'].map do |directory|
    ::WorkOS::Directory.new(directory.to_json)
  end

  WorkOS::Types::ListStruct.new(
    data: directories,
    list_metadata: parsed_response['listMetadata'],
  )
end
list_groups(options = {}) click to toggle source
# File lib/workos/directory_sync.rb, line 75
def list_groups(options = {})
  response = execute_request(
    request: get_request(
      path: '/directory_groups',
      auth: true,
      params: options,
    ),
  )

  parsed_response = JSON.parse(response.body)
  groups = parsed_response['data'].map do |group|
    ::WorkOS::DirectoryGroup.new(group.to_json)
  end

  WorkOS::Types::ListStruct.new(
    data: groups,
    list_metadata: parsed_response['listMetadata'],
  )
end
list_users(options = {}) click to toggle source
# File lib/workos/directory_sync.rb, line 114
def list_users(options = {})
  response = execute_request(
    request: get_request(
      path: '/directory_users',
      auth: true,
      params: options,
    ),
  )

  parsed_response = JSON.parse(response.body)
  users = parsed_response['data'].map do |user|
    ::WorkOS::DirectoryUser.new(user.to_json)
  end

  WorkOS::Types::ListStruct.new(
    data: users,
    list_metadata: parsed_response['listMetadata'],
  )
end