< Summary - Syki

Information
Class: Syki.Back.Features.Cross.FinishUserRegister.FinishUserRegisterService
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Features/Cross/FinishUserRegister/FinishUserRegisterService.cs
Tag: 21_17346963026
Line coverage
100%
Covered lines: 18
Uncovered lines: 0
Coverable lines: 18
Total lines: 36
Line coverage: 100%
Branch coverage
100%
Covered branches: 6
Total branches: 6
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
Finish()100%66100%

File(s)

/home/runner/work/syki/syki/Back/Features/Cross/FinishUserRegister/FinishUserRegisterService.cs

#LineLine coverage
 1using Syki.Back.Features.Cross.CreateUser;
 2using Syki.Back.Features.Cross.CreateInstitution;
 3
 4namespace Syki.Back.Features.Cross.FinishUserRegister;
 5
 6766public class FinishUserRegisterService(SykiDbContext ctx, CreateUserService service, HybridCache cache) : ICrossService
 7{
 8    public async Task<OneOf<UserOut, SykiError>> Finish(FinishUserRegisterIn data)
 9    {
 67610        _ = Guid.TryParse(data.Token, out var id);
 67611        var register = await ctx.UserRegisters.FirstOrDefaultAsync(d => d.Id == id);
 69812        if (register == null) return new InvalidRegistrationToken();
 13
 65414        var finish = register.Finish();
 65615        if (finish.IsError) return finish.Error;
 16
 65217        var institution = new Institution(register.InstitutionId, BrazilianInstitutions.PickRandom());
 18
 65219        ctx.Add(institution);
 65220        await ctx.SaveChangesAsync();
 21
 65222        var userIn = CreateUserIn.NewAcademic(institution.Id, register.Email, data.Password);
 65223        var result = await service.Create(userIn);
 24
 66825        if (result.IsError) return result.Error;
 26
 63627        var user = result.Success;
 28
 63629        await ctx.SaveChangesAsync();
 30
 63631        await cache.RemoveAsync("users");
 63632        await cache.RemoveAsync("institutions");
 33
 63634        return user;
 67635    }
 36}