초기 파티 document 설정 가능
This commit is contained in:
@ -369,6 +369,7 @@ func (gp *groupParty) InviteToParty(w http.ResponseWriter, r *http.Request) {
|
||||
Target primitive.ObjectID
|
||||
Inviter bson.M
|
||||
Invitee bson.M
|
||||
InitialPartyDoc bson.M
|
||||
}
|
||||
|
||||
if err := gocommon.MakeDecoder(r).Decode(&doc); err != nil {
|
||||
@ -409,12 +410,13 @@ func (gp *groupParty) InviteToParty(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
if gd == nil {
|
||||
gid = primitive.NewObjectID()
|
||||
gd, err = gp.createGroup(gid, mid, doc.Inviter)
|
||||
gd, err = gp.createGroup(gid, mid, doc.Inviter, doc.InitialPartyDoc)
|
||||
if err != nil {
|
||||
logger.Println("InviteToParty failed. gp.createGroup() return err :", err)
|
||||
w.WriteHeader(http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
|
||||
// 내가 wshandler room에 입장
|
||||
gp.enterRoom(gid, mid)
|
||||
gp.rh.JSONSet(mid.Hex(), "$.party", bson.M{"id": gid.Hex()})
|
||||
@ -648,7 +650,7 @@ func (gp *groupParty) QueryPartyMembers(w http.ResponseWriter, r *http.Request)
|
||||
}
|
||||
}
|
||||
|
||||
func (gp *groupParty) createGroup(newid groupID, charge accountID, chargeDoc bson.M) (*partyDoc, error) {
|
||||
func (gp *groupParty) createGroup(newid groupID, charge accountID, chargeDoc bson.M, initialGroupDoc bson.M) (*partyDoc, error) {
|
||||
tid := makeTid(newid, charge)
|
||||
|
||||
gd := &partyDoc{
|
||||
@ -660,15 +662,27 @@ func (gp *groupParty) createGroup(newid groupID, charge accountID, chargeDoc bso
|
||||
},
|
||||
},
|
||||
InCharge: tid,
|
||||
Gid: newid.Hex(),
|
||||
|
||||
rh: gp.rh,
|
||||
id: newid,
|
||||
}
|
||||
|
||||
_, err := gp.rh.JSONSet(gd.strid(), "$", gd, gocommon.RedisonSetOptionNX)
|
||||
var err error
|
||||
if initialGroupDoc != nil {
|
||||
initialGroupDoc["_members"] = gd.Members
|
||||
initialGroupDoc["_incharge"] = gd.InCharge
|
||||
initialGroupDoc["_gid"] = gd.Gid
|
||||
|
||||
_, err = gp.rh.JSONSet(gd.strid(), "$", initialGroupDoc, gocommon.RedisonSetOptionNX)
|
||||
} else {
|
||||
_, err = gp.rh.JSONSet(gd.strid(), "$", gd, gocommon.RedisonSetOptionNX)
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return gd, nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user