Passed
Push — master ( 34e91e...8ddd25 )
by Luiz Kim
02:42
created

UserService   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 50
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 8
eloc 24
c 2
b 0
f 0
dl 0
loc 50
rs 10

5 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 1 1
A changePassword() 0 12 2
A getPermission() 0 3 1
A createUser() 0 13 2
A changeApiKey() 0 10 2
1
<?php
2
3
namespace ControleOnline\Service;
4
5
use ControleOnline\Entity\People;
0 ignored issues
show
Bug introduced by
The type ControleOnline\Entity\People was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
6
use ControleOnline\Entity\User;
7
use Doctrine\ORM\EntityManagerInterface;
0 ignored issues
show
Bug introduced by
The type Doctrine\ORM\EntityManagerInterface was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
8
use Exception;
9
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
0 ignored issues
show
Bug introduced by
The type Symfony\Component\Securi...asswordEncoderInterface was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
10
11
class UserService
12
{
13
  public function __construct(private EntityManagerInterface $manager, private  UserPasswordEncoderInterface $encoder) {}
14
  public function changePassword(User $user, $password)
15
  {
16
    if (!$this->getPermission())
17
      throw new Exception("You should not pass!!!", 301);
18
19
    $user->setHash(
20
      $this->encoder->encodePassword($user, $password)
21
    );
22
23
    $this->manager->persist($user);
24
    $this->manager->flush();
25
    return $user;
26
  }
27
28
  public function changeApiKey(User $user)
29
  {
30
    if (!$this->getPermission())
31
      throw new Exception("You should not pass!!!", 301);
32
33
    $user->generateApiKey();
34
35
    $this->manager->persist($user);
36
    $this->manager->flush();
37
    return $user;
38
  }
39
40
  public function createUser(People $people, $username, $password)
41
  {
42
    if (!$this->getPermission())
43
      throw new Exception("You should not pass!!!", 301);
44
45
    $user = new User();
46
    $user->setPeople($people);
47
    $user->setHash($this->encoder->encodePassword($user, $password));
48
    $user->setUsername($username);
49
50
    $this->manager->persist($user);
51
    $this->manager->flush();
52
    return $user;
53
  }
54
55
  /**
56
   * @todo arrumar 
57
   */
58
  private function getPermission()
59
  {
60
    return true;
61
  }
62
}
63