Current section

Files

Jump to
crudjt lib token_service_server.ex
Raw

lib/token_service_server.ex

# This binding was generated automatically to ensure consistency across languages
# Generated using ChatGPT (GPT-5) from the canonical Ruby SDK
# API is stable and production-ready
defmodule Token.TokenService.Server do
use GRPC.Server, service: Token.TokenService.Service
@impl true
def create_token(request, _stream) do
hash =
request.packed_data
|> Msgpax.unpack!()
# token_service.proto expect int64/32 values
# it sensative for nil and covert it to 0
ttl = if request.ttl == -1, do: nil, else: request.ttl
silence_read = if request.silence_read == -1, do: nil, else: request.silence_read
token =
CRUDJT.original_create(
hash,
ttl,
silence_read
)
%Token.CreateTokenResponse{token: token}
end
@impl true
def read_token(request, _stream) do
raw_token = request.token
result_hash =
CRUDJT.original_read(raw_token)
{:ok, packed} = Msgpax.pack(result_hash)
packed_data = IO.iodata_to_binary(packed)
%Token.ReadTokenResponse{packed_data: packed_data}
end
@impl true
def update_token(request, _stream) do
raw_token = request.token
packed_data =
request.packed_data
|> Msgpax.unpack!()
# token_service.proto expect int64/32 values
# it sensative for nil and covert it to 0
ttl = if request.ttl == -1, do: nil, else: request.ttl
silence_read = if request.silence_read == -1, do: nil, else: request.silence_read
result =
CRUDJT.original_update(
raw_token,
packed_data,
ttl,
silence_read
)
%Token.UpdateTokenResponse{result: result}
end
@impl true
def delete_token(request, _stream) do
raw_token = request.token
result =
CRUDJT.original_delete(raw_token)
%Token.DeleteTokenResponse{result: result}
end
end