cagodoy / tenpo-users-api

Microservice implemented in Golang that stores user information into postgres DB.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Users-API

Microservice implemented in Golang that stores user information into postgres DB.

Table

   Column   |           Type           | Collation | Nullable |      Default
------------+--------------------------+-----------+----------+-------------------
 id         | uuid                     |           | not null | gen_random_uuid()
 email      | character varying(255)   |           | not null |
 name       | character varying(255)   |           | not null |
 password   | character varying(255)   |           | not null |
 created_at | timestamp with time zone |           |          | now()
 updated_at | timestamp with time zone |           |          | now()
 deleted_at | timestamp with time zone |           |          |
Indexes:
    "users_pkey" PRIMARY KEY, btree (id)
    "users_email_key" UNIQUE CONSTRAINT, btree (email)
Triggers:
    update_users_update_at BEFORE UPDATE ON users FOR EACH ROW EXECUTE PROCEDURE update_updated_at_column()

GRPC Service

message User {
  string id = 1;
  string email = 2;
  string name = 3;
  string password = 4;

  int64 created_at = 5;
  int64 updated_at = 6;
}

service UsersService {
  rpc Get(GetRequest) returns (GetResponse) {}
  rpc GetByEmail(GetByEmailRequest) returns (GetByEmailResponse) {}
  rpc Create(CreateRequest) returns (CreateResponse) {}
  rpc VerifyPassword(VerifyPasswordRequest) returns (VerifyPasswordResponse)  {}

  // TODO(ca): below methods are not implemented.
  // rpc List(ListRequest) returns (ListResponse) {}
  // rpc Update(UpdateRequest) returns (UpdateResponse) {}
  // rpc Delete(DeleteRequest) returns (DeleteResponse) {}
}

Commands (Development)

make build: build user service for osx.

make linux: build user service for linux os.

make docker: build docker.

docker run -it -p 5020:5020 tenpo-users-api: run docker.

PORT=<port> POSTGRES_DSN=<postgres_dsn> ./bin/tenpo-users-api: run tenpo user service.

About

Microservice implemented in Golang that stores user information into postgres DB.


Languages

Language:Go 77.5%Language:Dockerfile 8.7%Language:Makefile 8.3%Language:TSQL 3.3%Language:PLpgSQL 2.2%