Пример #1
0
        public async Task <IActionResult> Post([FromBody] UploadPackageRequestDto uploadPackageRequestDto)
        {
            IList <PackageFile> files = uploadPackageRequestDto.PackageFiles
                                        .Select(file => new PackageFile(file.FileName, file.FileContent))
                                        .ToList();

            // put a hard limit on the amount of files per package for now
            if (files.Count > 99)
            {
                return(this.BadRequest("can not have more then 100 items in a package"));
            }

            PackageFile ethereumPm = files.FirstOrDefault(f => f.FileName == Constants.EthereumPmJson);

            if (ethereumPm == null)
            {
                return(this.BadRequest("To upload a package you need a `ethereum-pm.json` file"));
            }

            JObject ethereumPmJson;

            try
            {
                ethereumPmJson = JObject.Parse(ethereumPm.FileContent);
            }
            catch (Exception)
            {
                return(this.BadRequest("Invalid JSON - `ethereum-pm.json`"));
            }

            EthereumPmMetaData metaData = new EthereumPmMetaData()
            {
                Description = (string)ethereumPmJson["description"],
                GitHub      = (string)ethereumPmJson["github"],
                Private     = (bool?)ethereumPmJson["private"] ?? false,
                Team        = (string)ethereumPmJson["team"],
                Keywords    = (IList <string>)ethereumPmJson["keywords"]
            };

            PackageFiles packageFiles = new PackageFiles
                                        (
                uploadPackageRequestDto.PackageVersion,
                uploadPackageRequestDto.PackageName,
                (IReadOnlyCollection <PackageFile>)files
                                        );

            try
            {
                UnpackedJwt unpackedJwt = this._jwtService.UnpackJwtClaimsToProfile(User.Claims.ToList());

                await this._packageService.UploadPackageAsync(packageFiles, metaData, unpackedJwt.Username);
            }
            catch (Exception ex)
            {
                return(this.BadRequest(ex));
            }

            return(this.Ok());
        }
Пример #2
0
        public async Task <IActionResult> Delete([FromBody] UnstarProjectRequestDto unstarProjectRequestDto)
        {
            UnpackedJwt unpackJwt = this._jwtService.UnpackJwtClaimsToProfile(User.Claims.ToList());

            await this._starService.UnstarPackage(unstarProjectRequestDto.PackageName, unpackJwt.Username);

            return(this.Ok());
        }
Пример #3
0
        public async Task <IActionResult> Get()
        {
            UnpackedJwt unpackJwt = this._jwtService.UnpackJwtClaimsToProfile(User.Claims.ToList());

            // ------- TO DO ------

            return(this.Ok());
        }
Пример #4
0
        public async Task <IActionResult> GetAdminUsers([FromRoute] string packageName)
        {
            UnpackedJwt unpackedJwt = this._jwtService.UnpackJwtClaimsToProfile(User.Claims.ToList());

            IReadOnlyList <string> adminUsers = await this._packageService.GetAdminUsers(packageName, unpackedJwt.Username);

            return(this.Ok(new { users = adminUsers }));
        }
Пример #5
0
        public async Task <IActionResult> Get()
        {
            UnpackedJwt unpackJwt = this._jwtService.UnpackJwtClaimsToProfile(User.Claims.ToList());

            IReadOnlyList <string> starredPackages = await this._starService.GetStarredProjects(unpackJwt.Username);

            return(this.Ok(new { packages = starredPackages }));
        }
Пример #6
0
        public async Task <IActionResult> Post([FromBody] TransferOwnershipOfPackageRequestDto transferOwnershipOfPackageRequestDto)
        {
            UnpackedJwt unpackedJwt = this._jwtService.UnpackJwtClaimsToProfile(User.Claims.ToList());

            await this._packageService.TransferPackageOwner(transferOwnershipOfPackageRequestDto.PackageName,
                                                            transferOwnershipOfPackageRequestDto.Username,
                                                            unpackedJwt.Username);

            return(this.Ok());
        }
Пример #7
0
        public async Task <IActionResult> Delete([FromBody] RemoveUserToPackageRequestDto removeUserToPackageRequestDto)
        {
            UnpackedJwt unpackedJwt = this._jwtService.UnpackJwtClaimsToProfile(User.Claims.ToList());

            await this._packageService.AddUserToPackage(removeUserToPackageRequestDto.PackageName,
                                                        removeUserToPackageRequestDto.Username,
                                                        unpackedJwt.Username);

            return(this.Ok());
        }
Пример #8
0
        public async Task <IActionResult> Post([FromBody] AddAdminToPackageRequestDto addAdminToPackageRequestDto)
        {
            UnpackedJwt unpackedJwt = this._jwtService.UnpackJwtClaimsToProfile(User.Claims.ToList());

            await this._packageService.AddAdminUserToPackage(addAdminToPackageRequestDto.PackageName,
                                                             addAdminToPackageRequestDto.Username,
                                                             unpackedJwt.Username);

            return(this.Ok());
        }
Пример #9
0
        public async Task <IActionResult> TransferOwnerPost([FromBody] TeamTransferOwnerDto teamTransferOwnerDto)
        {
            UnpackedJwt unpackJwt = this._jwtService.UnpackJwtClaimsToProfile(User.Claims.ToList());

            await this._teamService.TransferOwner(teamTransferOwnerDto.TeamName,
                                                  teamTransferOwnerDto.NewOwner,
                                                  unpackJwt.Username);

            return(this.Ok());
        }
Пример #10
0
        public async Task <IActionResult> Post([FromBody] CreateTeamRequestDto createTeamRequestDto)
        {
            UnpackedJwt unpackJwt = this._jwtService.UnpackJwtClaimsToProfile(User.Claims.ToList());

            await this._teamService.CreateTeam(createTeamRequestDto.TeamName,
                                               createTeamRequestDto.Private,
                                               unpackJwt.Username);

            return(this.Ok());
        }
Пример #11
0
        public async Task <IActionResult> Post([FromBody] AddAdminPermissionForTeamRequestDto adminPermissionForTeamRequestDto)
        {
            UnpackedJwt unpackJwt = this._jwtService.UnpackJwtClaimsToProfile(User.Claims.ToList());

            await this._teamService.RevokeAdminUserPermission(adminPermissionForTeamRequestDto.TeamName,
                                                              adminPermissionForTeamRequestDto.Username,
                                                              unpackJwt.Username);

            return(this.Ok());
        }
Пример #12
0
        public async Task <IActionResult> Delete([FromBody] RevokeAdminPermissionFromUserForTeamRequestDto revokeAdminPermissionFromUserForTeamRequestDto)
        {
            UnpackedJwt unpackJwt = this._jwtService.UnpackJwtClaimsToProfile(User.Claims.ToList());

            await this._teamService.RemoveUser(
                revokeAdminPermissionFromUserForTeamRequestDto.TeamName,
                revokeAdminPermissionFromUserForTeamRequestDto.Username,
                unpackJwt.Username);

            return(this.Ok());
        }
Пример #13
0
        public async Task <IActionResult> Delete([FromBody] DeleteUserFromTeamRequestDto deleteUserFromTeamRequestDto)
        {
            UnpackedJwt unpackJwt = this._jwtService.UnpackJwtClaimsToProfile(User.Claims.ToList());

            await this._teamService.RemoveUser(
                deleteUserFromTeamRequestDto.TeamName,
                deleteUserFromTeamRequestDto.DeleteUsername,
                unpackJwt.Username);

            return(this.Ok());
        }
Пример #14
0
        public async Task <IActionResult> AddUserToTeamPost([FromBody] AddUserToTeamRequestDto addUserToTeamRequestDto)
        {
            UnpackedJwt unpackJwt = this._jwtService.UnpackJwtClaimsToProfile(User.Claims.ToList());

            await this._teamService.AddUser(addUserToTeamRequestDto.TeamName,
                                            addUserToTeamRequestDto.NewUser,
                                            addUserToTeamRequestDto.IsAdmin,
                                            unpackJwt.Username);

            return(this.Ok());
        }
Пример #15
0
        public async Task <IActionResult> Post([FromBody] DeprecatePackageRequestDto deprecatePackageRequestDto)
        {
            UnpackedJwt unpackedJwt = this._jwtService.UnpackJwtClaimsToProfile(User.Claims.ToList());


            await this._packageService.UpdateDeprecateValueInPackage(deprecatePackageRequestDto.PackageName,
                                                                     unpackedJwt.Username,
                                                                     true);

            return(this.Ok());
        }
Пример #16
0
        public async Task <IActionResult> Get([FromRoute] string packageName, [FromRoute] string version)
        {
            string jwtUsername = string.Empty;

            if (User != null)
            {
                UnpackedJwt unpackedJwt = this._jwtService.UnpackJwtClaimsToProfile(User.Claims.ToList());
                jwtUsername = unpackedJwt.Username;
            }

            PackageFiles packageFiles = await this._packageService.GetPackageFilesAsync(packageName, version, jwtUsername);

            return(this.Ok(packageFiles));
        }
Пример #17
0
        public async Task <IActionResult> Post([FromBody] UnpublishPackageRequestDtos unpublishPackageRequestDto)
        {
            UnpackedJwt unpackJwt = this._jwtService.UnpackJwtClaimsToProfile(User.Claims.ToList());

            try
            {
                await this._packageService.UnpublishPackage(unpublishPackageRequestDto.PackageName, unpackJwt.Username);
            }
            catch (Exception ex)
            {
                return(this.BadRequest(ex.ToString()));
            }

            return(this.Ok());
        }
Пример #18
0
        public async Task <IActionResult> Put([FromBody] UpdateProfileDetailsRequestDto updateProfileDetailsRequestDto)
        {
            UnpackedJwt unpackJwt = this._jwtService.UnpackJwtClaimsToProfile(User.Claims.ToList());

            UsersEntity usersEntity = await this._profileService.UpdateDetails(updateProfileDetailsRequestDto.ToEntity(unpackJwt.Username));

            if (usersEntity == null)
            {
                this.BadRequest("Could not update user");
            }

            string jwtToken = this._jwtService.GenerateToken(usersEntity);

            return(this.Ok(new { jwtToken }));
        }
Пример #19
0
        public IActionResult Get()
        {
            UnpackedJwt unpackJwt = this._jwtService.UnpackJwtClaimsToProfile(User.Claims.ToList());

            return(this.Ok((Profile)unpackJwt));
        }