base structure
This commit is contained in:
162
svc/api/acompany.go
Normal file
162
svc/api/acompany.go
Normal file
@@ -0,0 +1,162 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"bordro-esleme/model/company"
|
||||
"git.makki.io/makki/libgo/cmn"
|
||||
"git.makki.io/makki/libgo/dbu"
|
||||
"git.makki.io/makki/libgo/mhttp"
|
||||
"git.makki.io/makki/libgo/nauth"
|
||||
"github.com/go-chi/chi/v5"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
func companyGet(w http.ResponseWriter, r *http.Request) {
|
||||
/*
|
||||
tc := auth.TokenDataFromRequest(r)
|
||||
rbac, err := tc.RBAC(r.Context(), auth.MdCompany)
|
||||
if err != nil {
|
||||
mhttp.InternalServerError(w, err)
|
||||
return
|
||||
}
|
||||
if !rbac.IsGrantedOp(auth.OpRead) && !tc.IsAdmin() {
|
||||
mhttp.Forbidden(w)
|
||||
return
|
||||
}
|
||||
*/
|
||||
|
||||
id := cmn.StrToInt64(chi.URLParam(r, "id"))
|
||||
data, err := company.DbRead(r.Context(), id)
|
||||
if err != nil {
|
||||
if dbu.IsNoRowsErr(err) {
|
||||
mhttp.NotFound(w)
|
||||
return
|
||||
} else {
|
||||
mhttp.InternalServerError(w, err)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
mhttp.ResponseSuccess(w, data)
|
||||
}
|
||||
|
||||
func companyCreate(w http.ResponseWriter, r *http.Request) {
|
||||
tc := nauth.TokenPayloadFromRequest(r)
|
||||
/*
|
||||
rbac, err := tc.RBAC(r.Context(), auth.MdCompany)
|
||||
if err != nil {
|
||||
mhttp.InternalServerError(w, err)
|
||||
return
|
||||
}
|
||||
if !rbac.IsGrantedOp(auth.OpCreate) && !tc.IsAdmin() {
|
||||
mhttp.Forbidden(w)
|
||||
return
|
||||
}
|
||||
*/
|
||||
|
||||
data := company.New()
|
||||
err := cmn.BodyToJsonReq(r, &data)
|
||||
if err != nil {
|
||||
mhttp.InternalServerError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
err = data.DbCreate(r.Context(), true, tc.UsrID())
|
||||
if err != nil {
|
||||
mhttp.InternalServerError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
mhttp.ResponseSuccess(w, data.ID)
|
||||
}
|
||||
|
||||
func companyUpdate(w http.ResponseWriter, r *http.Request) {
|
||||
tc := nauth.TokenPayloadFromRequest(r)
|
||||
/*
|
||||
rbac, err := tc.RBAC(r.Context(), auth.MdCompany)
|
||||
if err != nil {
|
||||
mhttp.InternalServerError(w, err)
|
||||
return
|
||||
}
|
||||
if !rbac.IsGrantedOp(auth.OpUpdate) && !tc.IsAdmin() {
|
||||
mhttp.Forbidden(w)
|
||||
return
|
||||
}
|
||||
*/
|
||||
|
||||
data := company.New()
|
||||
err := cmn.BodyToJsonReq(r, &data)
|
||||
if err != nil {
|
||||
mhttp.InternalServerError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
err = data.DbUpdate(r.Context(), true, tc.UsrID())
|
||||
if err != nil {
|
||||
mhttp.InternalServerError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
mhttp.ResponseSuccess(w, true)
|
||||
}
|
||||
|
||||
func companyDelete(w http.ResponseWriter, r *http.Request) {
|
||||
tc := nauth.TokenPayloadFromRequest(r)
|
||||
/*
|
||||
rbac, err := tc.RBAC(r.Context(), auth.MdCompany)
|
||||
if err != nil {
|
||||
mhttp.InternalServerError(w, err)
|
||||
return
|
||||
}
|
||||
if !rbac.IsGrantedOp(auth.OpDelete) && !tc.IsAdmin() {
|
||||
mhttp.Forbidden(w)
|
||||
return
|
||||
}
|
||||
*/
|
||||
|
||||
id := cmn.StrToInt64(chi.URLParam(r, "id"))
|
||||
|
||||
err := company.DbDelete(r.Context(), id, true, tc.UsrID())
|
||||
if err != nil {
|
||||
mhttp.InternalServerError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
mhttp.ResponseSuccess(w, true)
|
||||
}
|
||||
|
||||
func companyList(w http.ResponseWriter, r *http.Request) {
|
||||
/*
|
||||
tc := auth.TokenDataFromRequest(r)
|
||||
rbac, err := tc.RBAC(r.Context(), auth.MdCompany)
|
||||
if err != nil {
|
||||
mhttp.InternalServerError(w, err)
|
||||
return
|
||||
}
|
||||
if !rbac.IsGrantedOp(auth.OpRead) && !tc.IsAdmin() {
|
||||
mhttp.Forbidden(w)
|
||||
return
|
||||
}
|
||||
*/
|
||||
|
||||
var data []company.Company
|
||||
|
||||
tr, err := dbu.NewTableRequestFromRequest(r)
|
||||
if err != nil {
|
||||
mhttp.InternalServerError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
rp, err := dbu.NewRepoWithFile(r.Context(), "company", nil)
|
||||
if err != nil {
|
||||
mhttp.InternalServerError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
respData, err := rp.MList(tr, &data)
|
||||
if err != nil {
|
||||
mhttp.InternalServerError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
mhttp.ResponseSuccess(w, respData)
|
||||
}
|
||||
@@ -13,6 +13,6 @@ func login(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
clientResp := authResp.GetEndUserReponse()
|
||||
clientResp := authResp.GetEndUserResponse()
|
||||
mhttp.ResponseSuccess(w, clientResp)
|
||||
}
|
||||
|
||||
@@ -62,7 +62,12 @@ func HttpHandler(re enums.TRunEnv) http.Handler {
|
||||
// Handle valid / invalid tokens.
|
||||
r.Use(nauth.CheckTokenValidity)
|
||||
|
||||
r.Get("/sy/companies", napi.CompanyList)
|
||||
// company routes
|
||||
r.Get("/company/{id:[0-9]+}", companyGet)
|
||||
r.Get("/company", companyList)
|
||||
r.Put("/company", companyUpdate)
|
||||
r.Post("/company", companyCreate)
|
||||
r.Delete("/company/{id:[0-9]+}", companyDelete)
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user