mstar
a653477e7f
This time mainly helper functions for converting an account and associated types into their API representation
81 lines
2.9 KiB
Go
81 lines
2.9 KiB
Go
package server
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"github.com/google/jsonapi"
|
|
"github.com/rs/zerolog/hlog"
|
|
"gitlab.com/mstarongitlab/goutils/other"
|
|
"gitlab.com/mstarongitlab/linstrom/storage"
|
|
)
|
|
|
|
// No create account. That happens during passkey registration
|
|
// and remote accounts are getting created at fetch time
|
|
func linstromGetAccount(w http.ResponseWriter, r *http.Request) {
|
|
store := StorageFromRequest(r)
|
|
log := hlog.FromRequest(r)
|
|
accId := AccountIdFromRequest(r)
|
|
acc, err := store.FindAccountById(accId)
|
|
switch err {
|
|
case nil:
|
|
// Ok, do nothing
|
|
case storage.ErrEntryNotFound:
|
|
other.HttpErr(w, HttpErrIdNotFound, "account not found", http.StatusNotFound)
|
|
return
|
|
default:
|
|
log.Error().Err(err).Str("account-id", accId).Msg("Failed to get account from storage")
|
|
other.HttpErr(
|
|
w,
|
|
HttpErrIdDbFailure,
|
|
"Failed to get account from storage",
|
|
http.StatusInternalServerError,
|
|
)
|
|
return
|
|
}
|
|
// TODO: Check if caller is actually allowed to view the account requested.
|
|
|
|
outAccount, err := convertAccountStorageToLinstrom(acc, store)
|
|
if err != nil {
|
|
log.Error().
|
|
Err(err).
|
|
Msg("Failed to convert storage account (and attached data) into linstrom API representation")
|
|
other.HttpErr(
|
|
w,
|
|
HttpErrIdConverionFailure,
|
|
"Failed to convert storage account and attached data into API representation",
|
|
http.StatusInternalServerError,
|
|
)
|
|
return
|
|
}
|
|
err = jsonapi.MarshalPayload(w, outAccount)
|
|
if err != nil {
|
|
log.Error().Err(err).Any("account", outAccount).Msg("Failed to marshal and write account")
|
|
}
|
|
}
|
|
|
|
func linstromUpdateAccount(w http.ResponseWriter, r *http.Request) {}
|
|
func linstromDeleteAccount(w http.ResponseWriter, r *http.Request) {}
|
|
|
|
func linstromIsFollowingAccount(w http.ResponseWriter, r *http.Request) {}
|
|
func linstromFollowAccount(w http.ResponseWriter, r *http.Request) {}
|
|
func linstromUnfollowAccount(w http.ResponseWriter, r *http.Request) {}
|
|
|
|
func linstromIsBlockingAccount(w http.ResponseWriter, r *http.Request) {}
|
|
func linstromBlockAccount(w http.ResponseWriter, r *http.Request) {}
|
|
func linstromUnblockAccount(w http.ResponseWriter, r *http.Request) {}
|
|
|
|
func linstromIsMutedAccount(w http.ResponseWriter, r *http.Request) {}
|
|
func linstromMuteAccount(w http.ResponseWriter, r *http.Request) {}
|
|
func linstromUnmuteAccount(w http.ResponseWriter, r *http.Request) {}
|
|
|
|
func linstromReportAccount(w http.ResponseWriter, r *http.Request) {}
|
|
func linstromRetractReportAccount(w http.ResponseWriter, r *http.Request) {}
|
|
|
|
func linstromAdminAddRoleAccount(w http.ResponseWriter, r *http.Request) {}
|
|
func linstromAdminRemoveRoleAccount(w http.ResponseWriter, r *http.Request) {}
|
|
func linstromAdminWarnAccount(w http.ResponseWriter, r *http.Request) {}
|
|
|
|
func linstromGetRole(w http.ResponseWriter, r *http.Request) {}
|
|
func linstromCreateRole(w http.ResponseWriter, r *http.Request) {}
|
|
func linstromUpdateRole(w http.ResponseWriter, r *http.Request) {}
|
|
func linstromDeleteRole(w http.ResponseWriter, r *http.Request) {}
|