rewards

module
v0.0.0-...-0f68323 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 8, 2023 License: MIT

README

Rewards Microservice

A simple service for managing user points which allows receiving point based on the activity type i.e. add review, invite friend and these points can be spent or shared with other users as well.

Used packages

  • mysql
  • gorm
  • google.golang.org/grpc
  • github.com/kelseyhightower/envconfig

Directory structure

  • bin: contains executable file(s)
  • cmd: server and client main functions
  • docker: contains all docker files
  • internal:
    • api: implement grpc server methods
    • types: include environment struct and action type
    • models: database models (user, activity)
    • pb: generated code from proto using the following command:
      make generate
      
  • pkg: emtpy reserved for reusable packages
  • proto: contains protobuf files

Run the service

Build and run docker containers using this command:

make up

Migrate database

To run database migration type this on terminal:

make migrate

Stop the service

Stop and remove docker containers using this command:

make down

Test using client application

To run the test client with default parameters:

make client

it should print something like that:

2023/04/01 12:31:02 balance: 219.500000
2023/04/01 12:31:02 successfully shared points: 5.500000
2023/04/01 12:31:02 user points: 214.000000
2023/04/01 12:31:02 recipient points: 66.000000

How to authenticate users (not implemented)

We can use JWT token to authenticate user by adding interceptor function to grpc and get token metadata. This way we can get current user's data.

Directories

Path Synopsis
cmd
internal
api
pb

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL