public async Task <IActionResult> IsHandleUnique([FromQuery(Name = "Shop.Handle")] string handle) { if (!string.IsNullOrWhiteSpace(handle)) { return(Json(!await _handles.HandleExists(handle, "Organization"))); } else { return(NotFound()); } }
public async Task <BaseObject> Create(ActivityDeliveryContext ctx, Create create) { if (ctx.HasWritten) { var publisher = create.GetPublisher(); if (publisher != null && publisher.PublicId.IsLocal && ctx.item.obj != null && ctx.item.obj.PublicId.IsLocal && ctx.item.obj.tag != null && ctx.item.obj.tag.items.Any()) { var tags = ctx.item.obj.tag.items.Select(t => new TagModel { Tag = t.content }).ToList(); await _tags.Save(tags, publisher.UserId.Value, ctx.item.obj.PublicId); } } else { var publisherId = create.GetPublisher()?.PublicId; if (publisherId != null) { if (create.obj.objectId == null && (create.obj.PeerId == null || create.obj.PeerId == 0)) { create.published = DateTime.UtcNow; await _ids.UploadObject(publisherId, create.obj); } } else { throw new ArgumentNullException(nameof(publisherId)); } if (create.obj != null && create.obj is ActorObject actor && !string.IsNullOrWhiteSpace(actor.preferredUsername)) { if (await _handles.HandleExists(actor.preferredUsername, actor.type)) { throw new ArgumentException($"{actor.type} preferredUsername taken", nameof(actor.preferredUsername)); } } } return(null); }