github.com/infraboard/keyauth@v0.8.1/apps/user/http/http.go (about)

     1  package http
     2  
     3  import (
     4  	"github.com/infraboard/mcube/app"
     5  	"github.com/infraboard/mcube/http/router"
     6  
     7  	"github.com/infraboard/keyauth/apps/domain"
     8  	"github.com/infraboard/keyauth/apps/user"
     9  	"github.com/infraboard/keyauth/apps/user/types"
    10  )
    11  
    12  var (
    13  	api = &handler{}
    14  )
    15  
    16  type handler struct {
    17  	service user.ServiceServer
    18  	domain  domain.ServiceServer
    19  }
    20  
    21  // Registry 注册HTTP服务路由
    22  func (h *handler) Registry(router router.SubRouter) {
    23  	prmary := router.ResourceRouter("primary_account")
    24  	prmary.Allow(types.UserType_SUPPER)
    25  	prmary.BasePath("users")
    26  	prmary.Handle("POST", "/", h.CreatePrimayAccount)
    27  	prmary.Handle("DELETE", "/", h.DestroyPrimaryAccount)
    28  
    29  	ram := router.ResourceRouter("ram_account")
    30  	ram.Allow(types.UserType_PRIMARY, types.UserType_DOMAIN_ADMIN, types.UserType_ORG_ADMIN)
    31  	ram.BasePath("sub_users")
    32  	ram.Handle("POST", "/", h.CreateSubAccount)
    33  	ram.Handle("GET", "/", h.QuerySubAccount)
    34  	ram.Handle("GET", "/:account", h.DescribeSubAccount)
    35  	ram.Handle("PATCH", "/:account", h.PatchSubAccount)
    36  	ram.Handle("DELETE", "/:account", h.DestroySubAccount)
    37  	ram.BasePath("manage")
    38  	ram.Handle("POST", "/block", h.BlockSubAccount)
    39  
    40  	portal := router.ResourceRouter("profile")
    41  	portal.BasePath("profile")
    42  	portal.Handle("GET", "/", h.QueryProfile)
    43  	portal.Handle("GET", "/domain", h.QueryDomain)
    44  	portal.Handle("PUT", "/", h.PutProfile)
    45  	portal.Handle("PATCH", "/", h.PatchProfile)
    46  
    47  	dom := router.ResourceRouter("domain")
    48  	dom.Allow(types.UserType_DOMAIN_ADMIN)
    49  	dom.BasePath("settings/domain")
    50  	dom.Handle("PUT", "/info", h.UpdateDomainInfo)
    51  	dom.Handle("PUT", "/security", h.UpdateDomainSecurity)
    52  
    53  	pass := router.ResourceRouter("password")
    54  	pass.BasePath("password")
    55  	pass.Handle("POST", "/", h.GeneratePassword)
    56  	pass.Handle("PUT", "/", h.UpdatePassword)
    57  }
    58  
    59  func (h *handler) Config() error {
    60  	h.service = app.GetGrpcApp(user.AppName).(user.ServiceServer)
    61  	h.domain = app.GetGrpcApp(domain.AppName).(domain.ServiceServer)
    62  	return nil
    63  }
    64  
    65  func (h *handler) Name() string {
    66  	return user.AppName
    67  }
    68  
    69  func init() {
    70  	app.RegistryHttpApp(api)
    71  }