Class: Clowk::SDK::Resource

Inherits:
Object
  • Object
show all
Defined in:
lib/clowk/sdk/resource.rb

Direct Known Subclasses

Session, SessionConfig, Subdomain, Token, User

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ Resource

Returns a new instance of Resource.



12
13
14
# File 'lib/clowk/sdk/resource.rb', line 12

def initialize(client)
  @client = client
end

Class Method Details

.resource_pathObject

Raises:

  • (NotImplementedError)


8
9
10
# File 'lib/clowk/sdk/resource.rb', line 8

def self.resource_path
  raise NotImplementedError, "resource_path must be implemented"
end

Instance Method Details

#destroy(id) ⇒ Hash

Usage client.destroy(“123”)

Returns:

  • (Hash)

    deleted resource



59
60
61
# File 'lib/clowk/sdk/resource.rb', line 59

def destroy(id)
  client.delete("#{self.class.resource_path}/#{id}")
end

#find(id) ⇒ Hash

Usage client.find(“123”)

Returns:

  • (Hash)

    resource with the given id



45
46
47
# File 'lib/clowk/sdk/resource.rb', line 45

def find(id)
  client.get("#{self.class.resource_path}/#{id}")
end

#listArray<Hash>

Usage client.list

Returns:

  • (Array<Hash>)

    list of all resources



19
20
21
# File 'lib/clowk/sdk/resource.rb', line 19

def list
  client.get(self.class.resource_path)
end

#search(raw_query = nil, **filters) ⇒ Clowk::Http::Response

Examples:

keywords

client.users.search(email: "user@example.com", status: "active")
# GET /users/search?query=email%3Auser%40example.com+status%3Aactive

raw string

client.users.search("email:user@example.com active:true created_at>2026-01-01")
# GET /users/search?query=email%3Auser%40example.com+active%3Atrue+created_at%3E2026-01-01

Returns:



32
33
34
35
36
37
38
39
40
# File 'lib/clowk/sdk/resource.rb', line 32

def search(raw_query = nil, **filters)
  query = if raw_query.is_a?(String)
    raw_query
  else
    filters.map { |k, v| "#{k}:#{v}" }.join(" ")
  end

  client.get("#{self.class.resource_path}/search?query=#{ERB::Util.url_encode(query)}")
end

#show(id) ⇒ Hash

Usage client.show(“123”)

Returns:

  • (Hash)

    resource with the given id



52
53
54
# File 'lib/clowk/sdk/resource.rb', line 52

def show(id)
  client.get("#{self.class.resource_path}/#{id}")
end