-
Notifications
You must be signed in to change notification settings - Fork 0
/
Promotional.cpp
65 lines (37 loc) · 1.75 KB
/
Promotional.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
//Created by Kasaf Shah on September 23 2022
//Promotional.cpp class
#include "Promotional.hpp"
/*Parameterized constructor.
title : The name of the Promotional post (a string)
body : The body of the Promotional post (a string)
username : : The username of the Account that added this post (a string)
link : The link of the Promotional post (a string)
@post : Sets the title, body, username and link (if it's a proper link otherwise "Broken Link")
of the Promotional to the value
of the parameters.
It will also generate the current time and store it.*/
Promotional::Promotional(std::string name,std::string description,std::string username,std::string link):Post(name,description,username){
setLink(link);
}
/*Accessor function
@return : Returns the post link*/
std::string Promotional::getLink()const{
return url_post;
}
//not sure what to do here
bool Promotional::setLink(const std::string& link){
const std::regex pattern("((http|https)://)(www.)[a-zA-Z0-9@:%._\\+~#?&//=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%._\\+~#?&//=]*)");
if (regex_match(link,pattern)) {
url_post = link;
return true;
}
url_post = "Broken link";
return false;
}
//calling the Post functiona nd displaying the post
void Promotional::displayPost()const{
std::cout << '\n' << getTitle() << " at ";
getTimeStamp();
std::cout << getBody() << std::endl;
std::cout << getLink() << std::endl;
}